[英]Validate us number with regular expression
我正在freecodecamp上進行練習,以驗證我們的電話號碼。
用戶可以選擇任何方式填寫表單字段,只要它是有效的美國號碼即可。 以下是美國號碼的所有有效格式:
555-555-5555,(555)555-5555,(555)555-5555、555 555 5555、5555555555、1 555 555 5555
我正在使用RegEx來測試輸入。我在regex101上鍵入這些表達式
(([1]\s)?(\()*(\d{3})(-|\)|\)\s|\s)*(\d{3})(-|\s)*\d{4})
測試輸入如下:
2 **(757)622-7382 **返回true
-1(757)622-7382返回true
10 **(757)622-7382 **返回true
我如何測試前導2,減號和10。
我建議您看一下OWASP驗證正則表達式存儲庫,因為它們是驗證和持續更新的主題
對於美國電話(在撰寫本文時),建議的RegEx為^\\D?(\\d{3})\\D?\\D?(\\d{3})\\D?(\\d{4})$
((-)?\\d{0,2} )?
注意{0,2}
之后的space
(-)? // may begin with a minus
(\d{1,2})? // may have 1 or 2 digits before the actual number
( )? // may have a space after that
可能會晚一點,但是這是解決方法。
/^(1\s?)?(\(\d{3}\)|\d{3})[\s\-]?\d{3}[\s\-]?\d{4}$/;
您確實希望表達式的開頭有^來匹配字符串的第一個字符,並且您想在結尾使用$來使表達式知道這是結尾。
您可以在以下github github鏈接上查看以上答案以及另一種方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.