我想創建一個regex
驗證應符合以下的用戶名:允許正則表達式匹配用戶名
- 只有一個特殊字符
(._-)
,它絕不能以字符串的極值 - 第一個字符不能是數
- 所有允許的其它字符是字母和數字
- 總長度應爲3之間和20個字符
這是一個HTML5驗證模式,很遺憾,它必須是一個大的正則表達式。
到目前爲止,這是我的本錢:
^(?=(?![0-9])[A-Za-z0-9]+[._-]?[A-Za-z0-9]+).{3,20}
但正向前查找可重複超過一次允許超過一個特殊字符,這不是我想要的東西。而我不知道如何改正這一點。
不是一個答案 - 但是你需要打破'.'在'[._-]'。 – amit 2015-02-08 10:44:11
對於這個複雜的東西,你爲什麼選擇使用html驗證模式呢?您可以觸發處理驗證的事件而不是模式。 – Eclecticist 2015-02-08 10:46:18
@amit [._-]是列表中的單個字符「._-」的字面意思,所以點不被認爲是任何字符,所以我認爲我不需要破壞它 – Tofandel 2015-02-08 10:48:40