我希望用户输入他们的用户名只能使用字母数字和点字符。 所以我写了一个正则表达式如下:2个正则表达式有什么区别?
'/([a-zA-Z0-9\.]+)/'
但我想知道的是它与同:
'/([a-zA-Z0-9.]+)/'
2以下的图案是一样的吗?谢谢你的帮助! :-)
我希望用户输入他们的用户名只能使用字母数字和点字符。 所以我写了一个正则表达式如下:2个正则表达式有什么区别?
'/([a-zA-Z0-9\.]+)/'
但我想知道的是它与同:
'/([a-zA-Z0-9.]+)/'
2以下的图案是一样的吗?谢谢你的帮助! :-)
您不需要转义字符类中存在的点。在字符类中,点.
和转义点\.
与字面点匹配。所以这两个正则表达式都是一样的。
而且为了验证的目的,我建议你添加像'/^[a-zA-Z0-9.]+$/'
这样的锚点。锚将用于做一个确切的字符串匹配。也就是说,/[a-zA-Z0-9.]+/
正则表达式将匹配子foo
在这个()foo
输入字符串,但如果添加的开始和结束锚您正则表达式像/^[a-zA-Z0-9.]+$/
,它甚至不会单个字符输入的字符串相匹配。它允许只匹配一个或多个字母数字或点的字符,如果发现比点或字母数字以外的字符,则正则表达式引擎将不匹配相应的字符串。
据我所知,这是相同的,因为你不必逃避一个点! – Rizier123 2014-11-22 10:41:39
您不需要使用捕获组。 – 2014-11-22 11:00:04