不管是書本上還是網上的教程,在正規表示式中\w都被介紹為匹配任何單詞字元,包括字母和下劃線,等效於[a-za-z0-9]
今天偶然間發現會員註冊中出現了乙個惡作劇賬號"
аdmin",注意到那個а了沒?那是乙個俄文本母,在會員註冊過濾中使用\w驗證並不能防止。
也就是說\w包括了英文本母以及俄文本母等,在會員註冊這塊我們肯定不希望類同的賬號出現,要不然很容易造成會員間的誤會。所以改為^[a-za-z0-9\u4e00-\u9fa5-]$驗證,只允許數字、26個英文本母大小寫、中文及其組合。
通過網路檢測發現,目前的大部分**賬號基本有此誤檢測的bug,dz的不論php還是net版均存在此問題。想象一下吧,乙個**已存存在乙個英文會員賬號「admin」,再出現乙個俄文或俄文英文混合的賬號,如「
аdmin」,夠混亂吧?
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...