我正在尝试构建一个正则表达式,它将禁止字符串中任意位数0到9中的一个或多个作为验证例程的一部分。字符串允许包含字母,带重音符号,标点符号,空格等
通过建议编辑:更好地陈述我的要求是在字符串中断言没有数字。
我通过示例regexp=^[A-Za-z]{1,20}$
给出允许最多20个字母字符
我试过[^0123456789]
这不允许数字,但如果还有字母,空格或标点符号则不允许。
使用Javascript
我最有责任为此提供任何帮助。感谢
答案 0 :(得分:3)
有一个特殊的shorthand character class \D
只能匹配不是数字的字符。因此,您可以使用
^\D*$
确保您的字符串不包含任何数字。
/^\D*$/.test(subject)
如果True
不包含任何(ASCII)数字,将返回subject
。
答案 1 :(得分:3)
答案 2 :(得分:2)
如果您想禁止字符串中的数字:
^[^0-9]*$
正则表达式的工作原理如下:[0-9]
是所有数字的列表。通过将抑扬符放在组中,您将获得否定(因此任何字符例外都是数字)。
通过添加星号,您可以说它可以匹配任意数量的非数字。
现在我们只需要强制正则表达式跨越整个字符串。这是通过在前面放置一个回旋和在最后放置一个美元来完成的。