簡體   English   中英

針對特定情況的 JS 正則表達式模式

[英]JS regex pattern for specific case

我搜索了很多,但對正則表達式模式及其結構沒有太多經驗

這是模式的規則

  • 忽略大小寫敏感(a或A)是一樣的,沒關系
  • 數字被接受但不是必需的 > (name) and (name3) and (3name) 被接受
  • 整個單詞中只有 1 個數字 > (name1) 被接受但 (name11) 不被接受
  • 數字不能在單詞中間 > (na3me) 不接受
  • 沒有最少但最多 12 個字符 > (namenamenamex) 不被接受
  • 不接受特殊字符(只接受字符和數字)> (#na$me%) 不接受

如果對於所有這些條件都很難有一個正則表達式,任何類似的東西都會受到贊賞(即使可以滿足這些條件中的 5 個或至少 4 個)

/^(?=.{0,12}$)([0-9]?[a-zA-Z]+[0-9]?)$/

這應該匹配它。

  • 從正向前瞻開始檢查字符串長度,包括 1 到 12 個字符。
  • 開頭的單個數字是可選的。
  • 中間有 1 個或多個不區分大小寫的字母數字字符,不接受特殊字符。
  • 最后,最后是一個可選的數字。

編輯:為了滿足 1-word-1-number 規則,添加了一個負前瞻:

/^(?=.{0,12}$)(?!\d.*\d)(\d?[a-zA-Z]+\d?)$/

不是最緊湊但可讀的:

^(([0-9][a-zA-Z]{0,11})|([a-zA-Z]{0,11}[0-9])|([a-zA-Z]{1,12}))$

3個案例:

  • 數字,0 到 11 個字母
  • 0 到 11 個字母、數字
  • 1 到 12 個字母

暫無
暫無

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

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