我希望使用javascript对userid进行客户端验证。样本输入
!abc
abc-def , abc
abc , abc-def
abc
abc-def_hjk
我制作了一个正则表达式([\w]*[-]?[\w]+[\s]?[,]?[\s]?)+
。它根据需要匹配2,3,4,5
,但也匹配输入1
,这是无效的。
请告诉我这个正则表达式有什么问题。
答案 0 :(得分:1)
您的问题是\w
。请尝试使用a-zA-Z_
。这确保只使用字母
答案 1 :(得分:0)
\ d,\ w和\ s匹配数字,单词字符(字母,数字和下划线)和空格(空格,制表符和换行符)的速记字符类。可以在字符类的内部和外部使用。 \ D,\ W和\ S以上的否定版本。应该只在字符类之外使用。 (可以在里面使用,但这很令人困惑。)