JavaScript 正则表达式,仅允许字母数字字符和一些特殊字符。

4
在文本框中,我希望只允许使用字母数字字符、-(连字符)、/(正斜杠)、.(句号)和空格。我已经查看了类似的问题,但我的确切要求似乎有所不同。因此,以下是我在阅读成员答案后想出的正则表达式:
/^[a-z0-9\-\/. ]+$/i
我已经测试了这个正则表达式,到目前为止它似乎可以工作,但我想再确认一下。请验证上面的正则表达式是否符合我的要求。

1
看起来不错(虽然你不需要转义所有内容)- 只是因为我有点时间,我在regexpal.com上为你做了大量的测试数据,供你查看:http://goo.gl/PF7Lk - Jonathon Bolster
@jonathan:你在演示中漏掉了斜杠“/”。 - Salman A
1
啊,是的 - 我太傻了。这是一个更新的链接:http://goo.gl/GFU8U - Jonathon Bolster
1个回答

6

您进行了过多的转义

/^[a-z0-9/. -]+$/i

在字符类中,只有[]\-^具有特殊意义,而^只有在它是第一个字符时才有特殊含义,-只有在字符之间时才有特殊含义。
要匹配文本中的字面字符^,只需将其放置在任何位置,但不是第一个字符。若要字面匹配-,请不要将其放在字符之间(即放在开头或结尾)。
不必转义诸如/.$等字符。

谢谢@Tomalak,我已经删除了不必要的转义字符。 - Sang Suantak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接