正则表达式允许使用逗号

时间:2013-04-26 19:35:34

标签: javascript expression validation

我只需要允许字母和一些字符。 我用这个正则表达式:

([a-zA-Z '-_]*)$")

但这也允许, ; : .

为什么?

2 个答案:

答案 0 :(得分:2)

字符类中的连字符(-)指定一个范围,您应该通过将[a-zA-Z '-_]更改为以下内容来使用反斜杠转义:

[a-zA-Z '\-_]

如果没有这个,正则表达式引擎会将'-_解释为从'_的一系列字符,其中包含以下字符(http://www.asciitable.com/):

' ( ) * + , - . / 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 [ \ ] ^ _

您可能还想在开始时添加^并在正则表达式的末尾添加$,这些是字符串锚点的开头和结尾,它们会阻止您的正则表达式仅匹配部分一串。

答案 1 :(得分:0)

你必须在开始时设置^,在结尾设置$以强制它只是该组:

/^[a-zA-Z \'\-_]+$/.test('Adidi:') // false