2011-07-16 269 views
0

我從來沒有想過使用正則表達式,所以我有一個問題,理解爲什麼我下面列出的正則表達式。沒有隻允許下列字符:正則表達式:爲什麼我的正則表達式過濾不正確?

  • AZ & AZ(上&下)
  • AAO & AAO
  • 0-9 &下劃線(_)

這裏的正則表達式:

/^[\s\da-0-9-zA-ZåäöÅÄÖ_]$/i 

什麼我做錯了嗎?

+0

'\ d'和'0-9'是多餘的。 –

回答

1

因爲這個a-0-9-z是相反的順序。使用這個:^[\s\da-zA-ZåäöÅÄÖ_]$或這個:(?i)^[\s\da-zåäö_]$與忽略大小寫選項設置爲啓用。在您的正則表達式你使用\d0-9letters, digits, and underscores

您也可以使用特殊字符\w,這意味着。 \d包括0-9,看到Explanation

+0

嗨!這仍然可以通過特殊的字符,比如'@'&'&'... – Industrial

+0

@Industrial,你是什麼意思? –

+0

運行您提供的正則表達式('^ [\ s \ da-zA-ZåäöÅÄÖÖÖ|] $'),包含'&'或'&'的字符串不會過濾出&&或'&',因爲我需要 – Industrial

0

這裏的表達是逐字拷貝嗎?由於

/^[\s\da-0-9-zA-ZåäöÅÄÖ_]$/i 

你有

a-0-9-zA-Z 

,你大概的意思

0-9a-zA-Z 
0

的錯誤是A-0-9-Z這應該是一個-Z0-9

此外,你可以升0-9會導致你使用\ d,並且你可以使用\ w作爲任何「單詞」字符。

0

這個正則表達式匹配signle字符串,不區分大小寫,如下所示:任何空格字符,任何數字(0-9),任何字母(a-ZA-Z),以及其中一個字母。

0

說不上對拉丁,但如果你使用\d,還,你不要,如果你使用/i標誌需要a-zA-Z你不需要0-9,使一切不區分大小寫的,所以你可以請留下a-z

相關問題