我需要的正則表達式的Javascript正則表達式自定義驗證
1)[A-Z][a-z][0-9]
必須包括大寫&小寫字母,數字&特殊字符(除+和 - )。
2)序列中不超過2個相同的字符(例如,[email protected]
或[email protected]
或Google#12
是不可接受的)。
我試過這個,但不知道如何檢查2個相同的字符。
^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^%*()!&=]).*$
我需要的正則表達式的Javascript正則表達式自定義驗證
1)[A-Z][a-z][0-9]
必須包括大寫&小寫字母,數字&特殊字符(除+和 - )。
2)序列中不超過2個相同的字符(例如,[email protected]
或[email protected]
或Google#12
是不可接受的)。
我試過這個,但不知道如何檢查2個相同的字符。
^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^%*()!&=]).*$
你可以加一個額外的(?!.*(.)\1)
先行檢查,不允許連續的字符,並在與[^_+]*
(或[^-+]*
如果你的意思是連字符)結束時替換.*
匹配任何字符,但_
(或-
)和+
:
^(?!.*(.)\1)(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^*()!&=])[^_+]*$
^^^^^^^^^^ ^^^^^
(?!.*(.)\1)
lookahead匹配除換行符之外的任何0+字符,然後逐個捕獲這些字符並嘗試匹配緊跟在後面的相同字符(使用\1
反向引用)。如果發現該模式,則整個比賽失敗。
請注意,[^_+]
也可能符合換行符,但我想這不是問題。無論如何,你可以在那裏添加\n\r
以避免匹配它們。
試試'(?!。*(。)\ 1。*(。)\ 2)'。注意這會使性能變差。 –
你能告訴我們你到目前爲止嘗試過嗎? –
第一個條件聽起來好像你想在你的輸入中允許任何字符,但是'+'和'-'。 –
@WiktorStribiżew+和_不允許 – user3747168