一個驗證使用者名稱的Regex

來源:互聯網
上載者:User

求一個驗證使用者名稱的Regex
各位大哥大姐,晚輩求一個驗證使用者名稱的Regex,苦苦思索了一個星期還是沒有弄出來,本人愚鈍,還望大家指教!
VBscript編程要求使用者名稱的字元控制在3至20個之間,由中文、大小寫字母、數字、底線、小數點、減號組成, 必須以中英文或數字開頭結尾且底線、小數點、減號這三個字元中的其中一個的組合不能是連續的 a__a或a--a或a..a 這樣的,但可以 a_a.a_a.a_a-a-a-a_a-a.a.a.a這樣的。
如果超出這個範圍則使用者名稱不通過。
就是一直弄不明白底線、小數點、減號這三個字元中的其中一個的組合的問題,頭都大了
此為不符合的正則:
^.{0,2}$|.{21,}|^[^A-Za-z0-9\u4E00-\u9FA5]|[^\w\u4E00-\u9FA5.-]|([_.-])\1 <input id="strs" value="a_a.a_a.a_a-a-a_a-a" size="40"><input type="button" onclick="regtest(strs.value)" value="檢查">
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]

(?!pattern)
負向預查,在任何不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字串開始處匹配尋找字串。這是一個非擷取匹配,也就是說,該匹配不需要擷取供以後使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。預查不消耗字元,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之後開始

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.