我想通过检查包含任何字母的输入来验证表单域。所有其他字符和数字应该被允许。我在正则表达式方面很糟糕,而且我无法在任何地方找到正确的解决方案。正则表达式除了字母(javascript)
我已经试过这样:
/[^A-Za-z]/g
但这只是返回false如果字符串只包含字母(即432ad32d应该返回false以及)。
谁能告诉我该怎么做?
我想通过检查包含任何字母的输入来验证表单域。所有其他字符和数字应该被允许。我在正则表达式方面很糟糕,而且我无法在任何地方找到正确的解决方案。正则表达式除了字母(javascript)
我已经试过这样:
/[^A-Za-z]/g
但这只是返回false如果字符串只包含字母(即432ad32d应该返回false以及)。
谁能告诉我该怎么做?
试试这个正则表达式:^[^A-Za-z]*$
“*”运算符匹配零个或多个表达式。所以它会匹配一个空字符串。我想你的意思是'+' –
问题是要检查字符串是否不包含任何字母。所以空字符串没有字母。它用于表单验证。所以,也许需要允许空字符串? –
您需要包括锚
/^[^A-Za-z]+$/g
这将确保该字符串的开始和一个或多个数字/特殊字符
/[^A-Za-z]/
此正则表达式一个非字母,这是不是很实用相匹配。 Yura Yakym的答案匹配字符串的开头,任意数量的非字母,然后匹配字符串的末尾,匹配时它很有用:它意味着您的字符串只包含那些东西。
另一个有用的正则表达式是:
/[A-Za-z]/
这一个字母,这是非常有用的当它不匹配匹配:这意味着你的字符串中不包含任何字母都没有。
对于你一般的问题,“我怎样才能确保一个字符串没有字母?”,我会使用第二个正则表达式:我会尝试匹配一个字母,并希望不能这样做。不过,对于输入验证,我更喜欢描述所有可能的有效输入的正则表达式。如果/^[^A-Za-z]*$/
这样做,那就使用它。如果您有其他要求,请将其添加到它。没有多个“没有字母?好的,没有非短划线的特殊字符?好的。” ......除非你想提供关于这些事情的错误信息。
您忘记了开始和结束标记。你也不需要g
标志。
/^[^A-Za-z]*$/
无论如何,这很奇怪,因为我仍然可以输入ciryllic字母。
是否允许? ;-)那么'ݰ'或'Ӝ'呢? –
好问题。否:)我想用它来验证电话号码,但由于有些人使用某些字符,我宁愿不检查数字。但是,考虑它,也许最好检查允许的字符(0-9, - ,+,(,)和空格)。长度并不重要。 – Leon
这就是我希望你做出的结论:) –