已經有一個有效的正則運算式 ^[a-zA-Z0-9 ]{1,11}$ 但最近在驗證中得到了更新:應該有所有舊的驗證和新的一個符號 _ 應該在整個字串中出現一次。
字串只能匹配:
_name
name_
name_name
驗證應該失敗:
_name_
__name
etc.
嘗試了幾種方法 ^[a-zA-Z0-9_ ]{1,11}$ 所有字符都可能是 _
^( ?)[a-zA-Z0-9 ]{1,11}( ?)$ 驗證
alpha_
_alpha
_alpha_ (shouldn't be valid)
但不是這個:
alpha_name
uj5u.com熱心網友回復:
你需要使用
^(?=.{1,11}$)[a-zA-Z0-9 ]*(?:_[a-zA-Z0-9 ]*)?$
請參閱正則運算式演示。詳情:
^- 字串的開始(?=.{1,11}$)- 一個正向前瞻,需要 1 到 11 個字符而不是換行符直到字串結束[a-zA-Z0-9 ]*- 零個或多個字母、數字或空格(?:_[a-zA-Z0-9 ]*)?- 可選出現_零個或多個字母、數字或空格$- 字串的結尾。
uj5u.com熱心網友回復:
嘗試這個:
^(?=.{1,11}$)([a-zA-Z0-9 ]*)_?(?1)$
https://regex101.com/r/lCV5VT/1
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/358663.html
標籤:正则表达式
上一篇:我們如何將冒號前的單詞加粗,如aaaaabbccc需要在reactjs中加粗
下一篇:忽略正則運算式中不相關的部分
