我希望用戶輸入他們的用戶名只能使用字母數字和點字符。 所以我寫了一個正則表達式如下: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