jQuery仅使用数字

时间:2015-07-08 08:03:41

标签: javascript jquery validation numeric alphabetical

我在使用JQuery验证方面遇到了一些困难。我需要使用数字进行输入验证按字母顺序排列,但如果我只输入 numeric 值则不应验证。

例如: lorem ipsum 123 应该有效, lorem ipsum 应该有效, 123 应该无效。

我使用此代码但无效。

e.find('.alphanum').keypress(function(e) {
    var regex = new RegExp("^[a-zA-Z0-9 ]+$");
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    }
    e.preventDefault();
    return false;
});

2 个答案:

答案 0 :(得分:2)

这应该有所帮助:

/(?!^\d*$)^[a-zA-Z0-9 ]+$/

答案 1 :(得分:2)

这可能也很有用:

/^(?:[A-Za-z0-9 ]*[a-zA-Z ][0-9]*)+$/

它与Qwertiy提供的内容几乎完全相同,但可能更容易理解(对于正则表达式,恕我直言,这本身就是一种品质......)。

我们会形成一个由零个或多个允许字符组成的非捕获组,一个必需字符,然后是零个或多个允许但不是必需字符,然后我们匹配该组。如果您不想仅允许空白字符串,请将空格从第二个字符类移到第三个字符类,即

/^(?:[A-Za-z0-9 ]*[a-zA-Z][0-9 ]*)+$/

您可以将三个字符类视为

  1. 字符串中允许的所有字符。
  2. 必须的所有字符至少出现一次
  3. 所有出现在1中但不在2中的字符。
  4. 这很可能比Qwertiy的答案更有效,但该解决方案也符合例如" ",而这个答案中的第二个没有。

    您可以使用正则表达式,并在此处测试结果:https://regex101.com/r/iB6pE1/3