我有一個用例來驗證電話號碼欄位,如果用戶輸入所有十位數的手機號碼,例如(111)111-1111/ (999)999-9999,那么我們必須向用戶顯示一些錯誤訊息。
在這里,我嘗試使用此正則運算式驗證此場景\(([0-9])\1{2}\)\s\1{3}\-\1{4}$,它正在驗證是否存在所有唯一號碼,但同時它給出了一個預期之外的有效電話號碼的錯誤。
請分享您對此正則運算式的想法以驗證此用例。
uj5u.com熱心網友回復:
該\s可疑的我,因為沒有看上去似乎是在你想匹配的電話號碼格式的任何空白。
看起來您可能正在使用 python,而且我對 \1 樣式組參考的細微差別不太熟悉。但是,使用普通的正則運算式,我會按如下方式匹配電話號碼格式:
\([0-9]{3}\)[0-9]{3}-[0-9]{4}
uj5u.com熱心網友回復:
由于捕獲組和反向參考,當所有數字都相同時,您的模式匹配。
如果支持,您可以做的是在否定前瞻斷言中使用您的模式,以確保您的模式不會直接出現在右側,從而沒有匹配。
然后您可以使用相同的模式,但隨后匹配數字 0-9。
請注意,在示例資料中,\s您的模式中的 將不匹配。
^(?!\(([0-9])\1{2}\)\1{3}\-\1{4}$)\([0-9]{3}\)[0-9]{3}-[0-9]{4}$
^字串的開始(?!\(([0-9])\1{2}\)\1{3}\-\1{4}$)否定前瞻斷言不匹配僅右側相同數字的模式\([0-9]{3}\)[0-9]{3}-[0-9]{4}如果斷言為真,則相同模式匹配數字 0-9$字串結束
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/341638.html
標籤:正则表达式
下一篇:將變數傳遞給私有npm包
