簡體   English   中英

帶有特殊字符的正則表達式字母數字

[英]Regex alphanumeric with special characters

我需要使用應該滿足以下要求的正則表達式來驗證輸入字符串:

  • 如果所有數字 -> 錯誤
  • 如果所有特殊字符 -> 錯誤
  • 如果只有數字 + 特殊字符 -> 錯誤
  • 剩余的全部應標記為非錯誤。

我無法通過所有測試用例。

這是我的正則表達式:

\d*([a-zA-Z,\/().]*[a-zA-Z][\d,\/().]*)[a-zA-Z\d\s]*$

對於特殊字符,我得到一個特定的列表,\/(). 讓他們進來。誰能幫我理解這一點?

您可以使用以下正則表達式:

^(?:[\d,\/().]*[a-zA-Z][a-zA-Z\d,\/().]*)?$

查看正則表達式演示

詳情

  • ^ - 字符串的開頭
  • (?:[\d,\/().]*[a-zA-Z][a-zA-Z\d,\/().]*)? - 一個可選序列(它讓字符串為空):
    • [\d,\/().]* - 0+ 位和特殊
    • [a-zA-Z] - 一個 alpha
    • [a-zA-Z\d,\/().]* - 0+ 字母、數字和特殊字符
  • $ - 字符串結尾

嚴格按照您的要求執行以下操作:

[^\d,\\\/().]

如果有任何“觸發”字符(非數字,非特殊)匹配

如果要匹配整個字符串,請使用

^.*[^\d,\\\/().].*$

這在所有情況下都適用於我..

/^(?=. \d)(?=. [az])(?=. [AZ])(?=. [ @.#&+-])[A-Za-z0-9 @.#& +-]{8,}$/

下面是它的工作原理,

^(?=. \d) - 檢查字符串中的至少一位數字
(?=. [az]) - 檢查字符串中的至少一個小寫字母
(?=. [AZ]) - 檢查字符串中的至少一個大寫字母
(?=. [_@.#&+-]) - 檢查字符串中的至少一個特殊字符
{8,} - 檢查字符串長度是否至少為 8 個字符


單擊此處在Regex 101進行測試。

暫無
暫無

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

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