我有一个正则表达式:
/^([a-zA-Z0-9_ -.''""]+)$/
它非常适合字母、数字和一些特殊字符,如 -
、.
、'
和 "
.
不,我希望它也允许使用冒号 (:
)。我尝试了以下正则表达式但它失败了 - 它开始允许许多其他特殊字符。
/^([a-zA-Z0-9_ :-.''""]+)$/
知道为什么吗?
最佳答案
-
在字符类中有特殊含义,就像在 a-z
中一样。试试这个:
/^([a-zA-Z0-9_ :\-.'"]+)$/
-.
(空格到点)允许一些额外的字符,如 #
、$
等。如果这是故意的,请尝试:
/^([a-zA-Z0-9_ -.'":]+)$/
此外,您不必多次包含任何字符,这毫无意义。 '
和 "
各出现两次,可以安全地删除它们。
顺便说一下,在 character table 中的点 之后出现冒号,该正则表达式无效。它不应该允许额外的字符,你应该会得到一个错误。在 Firefox 中,您得到:字符类中的无效范围
。
关于javascript - javascript正则表达式中的冒号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5237293/