![](/img/trans.png)
[英]JavaScript Regex - Match a string with that contains some characters and doesn't contain others
[英]Regex, string is a combination of whitelisted characters and doesn't contain any in blacklist
1)如何正則表達式驗證用戶輸入是否包含A組中的任何字符組合,以及不包含來自另一組D的任何字符?
2)同時檢查字符串長度是否在2到255之間
換句話說,對於所有字符串字符:A AND NOT D.
我從服務器收到兩組字符(白名單和黑名單),需要根據這些字符驗證用戶輸入。 我不能影響設計,必須忍受它。 由於其他設計限制,我也必須使用正則表達式。
這是我到目前為止所做的事情(根本不工作):
/^(?![23]+)[0-9]{2,255}$/
為簡單起見, 23將是黑名單
為簡單起見, 0-9將是字符的白名單
一些例子:
3014567890 - >失敗,3存在
0145678902 - >失敗,2存在
0123456789 - >失敗,2和3存在
014567890 - >好的
88774411489 - >好的
5 - >失敗,沒有足夠的人物
1abc - >失敗,abc非法chars
ab1c - >失敗,abc非法的chars
abc1 - >失敗,abc非法的字符
謝謝!
你幾乎就在那里,先行斷言需要一些工作:
/^(?!.*[23])[0-9]{2,255}$/
這樣,負向前瞻中的正則表達式匹配,如果字符串中有(至少)一個2
或3
(即,在任意數量的字符( .*
)之后),導致斷言失敗。
在這個(顯然)簡化的例子中,你當然可以使用/^[014-9]{2,255}$/
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.