簡體   English   中英

javascript regex 需要至少一個字母,一個數字並防止添加某些單詞

[英]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]匹配任意數量的字母字符直到字母。

在 regex101 上查看演示

實際上,您只需要兩個前瞻即可獨立於條件。 一個用於所需的數字,一個用於單詞。 字母的要求可以在模式內完成。

環視是在某個位置觸發的零長度斷言。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM