[英]javascript regex requiring at least one letter, one number and prevents from adding certain words
我正在嘗試修改我的正則表達式,它要求用戶至少輸入一個字母和一個數字,如下所示:
new RegExp('^(?=.*[a-z])(?=.*[0-9]).+$')
我想阻止用戶在@
之前使用某些詞,例如電子郵件地址部分。
所以讓我們假設電子郵件地址是example@example.com
我想強制用戶使用不包含example
的字符串(字符串的任何部分)
這是我到目前為止:
\b(?:(?!example)\w)+\b
但它並沒有真正強迫用戶至少使用一個字符和一個數字。
當我試圖限制它時,我最終得到了這個:
\b(?:(?!example).*[a-z].*[0-9])+\b
但是現在字符串必須遵循example
的順序,然后是[az]
,然后是[0-9]
非常感謝任何幫助
謝謝!
在您的示例中,負前瞻僅在字符串的開頭不允許example
。 只需添加.*?
作為小丑禁止在字符串中的任何位置使用單詞,並在需要時使用單詞邊界\\b
。
/^(?!.*?example)(?=\D*\d)[^a-z]*[a-z].*$/i
(?!.*?example)
first lookahead 不允許該行中的任何位置的example
(?=\\D*\\d)
第二次前瞻需要在任意數量的\\D
非數字之后有一個數字。[^az]*[az]
匹配任意數量的非字母字符直到字母。實際上,您只需要兩個前瞻即可獨立於條件。 一個用於所需的數字,一個用於單詞。 字母的要求可以在模式內完成。
環視是在某個位置觸發的零長度斷言。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.