我只需要允许字母和一些字符。我使用这个正则表达式:
([a-zA-Z '-_]*)$")
但这也允许, ; : .
为什么?
字符类中的连字符 ( -
) 指定一个范围,您应该通过更改[a-zA-Z '-_]
为以下内容用反斜杠对其进行转义:
[a-zA-Z '\-_]
如果没有这个,正则表达式引擎将解释为从to'-_
的一系列字符,其中包括以下字符 ( 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 [ \ ] ^ _
您可能还想在正则表达式的开头和结尾添加 a ^
,$
这些是字符串锚点的开头和结尾,它们将阻止您的正则表达式仅匹配字符串的一部分。
你必须^
在开始和$
结束时设置强制它只是那个组:
/^[a-zA-Z \'\-_]+$/.test('Adidi:') // false