我希望用户只输入字母数字和点字符来输入用户名。 所以我写了一个正则表达式模式如下:
'/([a-zA-Z0-9\.]+)/'
但我想知道它是否与以下相同:
'/([a-zA-Z0-9.]+)/'
2以下的模式是一样的吗?谢谢你的帮助! : - )
答案 0 :(得分:4)
您不需要逃避字符类中存在的点。在字符类中,点.
和转义点\.
与文字点匹配。因此两个正则表达式都相同。
而且出于验证目的,我建议您添加'/^[a-zA-Z0-9.]+$/'
之类的锚点。 Anchor将用于进行精确的字符串匹配。也就是说,/[a-zA-Z0-9.]+/
正则表达式会与此foo
输入字符串中的子字符串()foo
匹配,但如果您将开始和结束锚点添加到正则表达式/^[a-zA-Z0-9.]+$/
,则会赢得&#39}。 t匹配上面提到的字符串中的单个字符。它只允许匹配一个或多个字母数字或点字符,如果找到的字符不是点或字母数字,则正则表达式引擎不会匹配相应的字符串。