我在使用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;
});
答案 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 ]*)+$/
您可以将三个字符类视为
这很可能比Qwertiy的答案更有效,但该解决方案也符合例如" "
,而这个答案中的第二个没有。
您可以使用正则表达式,并在此处测试结果:https://regex101.com/r/iB6pE1/3