Javascript 正则表达式允许逗号
我只需要字母和一些字符。 我使用这个正则表达式:Javascript 正则表达式允许逗号,javascript,expression,validation,Javascript,Expression,Validation,我只需要字母和一些字符。 我使用这个正则表达式: ([a-zA-Z '-_]*)$") 但这也允许,;: 为什么?字符类中的连字符(-)指定一个范围,您应该通过将[A-zA-Z'-\uz]更改为以下内容,用反斜杠对此进行转义: [a-zA-Z '\-_] 如果没有此选项,正则表达式引擎将把'-解释为从'到的一系列字符,其中包括以下字符(): ”()*+,-。/0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P
([a-zA-Z '-_]*)$")
但这也允许,;:代码>
为什么?字符类中的连字符(-
)指定一个范围,您应该通过将[A-zA-Z'-\uz]
更改为以下内容,用反斜杠对此进行转义:
[a-zA-Z '\-_]
如果没有此选项,正则表达式引擎将把'-
解释为从'
到
的一系列字符,其中包括以下字符():
”()*+,-。/0 1 2 3 4 5 6 7 8 9 : ; < = > ? @
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z[\]^_
您可能还希望在正则表达式的开头添加一个^
,在末尾添加一个$
,这些都是字符串的开头和结尾锚,它们将阻止正则表达式仅匹配字符串的一部分。您必须在开头设置^
,在结尾设置$
,以强制它仅为该组:
/^[a-zA-Z \'\-_]+$/.test('Adidi:') // false
-1这也是正确的,因为没有绑定^$和+来设置一个或多个字符。我将OP的问题解释为“正则表达式匹配逗号”,这在转义连字符后将不再可能。无论如何,我在编辑中添加了一个关于锚的注释(顺便说一句,我并不是那个否决你答案的人)。如果你想匹配-
,你也可以把它作为[]
中的第一个字符,比如/^[-a-z]+$/.test('a-little-thing')
谢谢你的快速响应!尝试使用var regexpatern=/^[a-zA-Z'\-\\-\*$/
。如果开头没有^
锚定,您将只测试字符串末尾的字符。如果开始与结束不匹配,您可以尝试插入标题^
(锚定用于输入开头)。
/^[a-zA-Z \'\-_]+$/.test('Adidi:') // false