簡體   English   中英

用於電話號碼驗證的 Javascript RegEx 構建

[英]Javascript RegEx build for a phone number validation

我需要一個用於電話號碼驗證的正則表達式。 但我無法建造它。 你能幫我只給我正則表達式嗎?

電話號碼結構應該是這樣的:

  1. 第一:可選+號,可選空格,1-3位數字
  2. 然后:可選空間
  3. 然后:可選(, 可選空格, 1-3 位數字, 可選空格, )
  4. 然后:可選的空格或破折號(減號)“-”
  5. 然后:至少 5 位數字用可選的單字符分隔符分隔。 分隔符是破折號 ("-") 或空格 (" ")
  6. 字符串中的任何地方都是非法的: -( , )- , -- , " " (2 個空格)

這非常接近您的規格:

/^\+?\s?[0-9]{1,3}\s?([0-9]{1,3})?[\s-]?([0-9][\s-]){5}([0-9][\s-])*$/

注意:

  • 這是未經測試的,我對正則表達式不是特別熟練,所以我很可能錯過了一些東西,但這應該會讓你繼續前進。
  • 您要求的格式對於電話號碼來說似乎非常不尋常,但無論如何我都嘗試實現您要求的格式。
  • 上述表達式至少未滿足您的一項標准。 (在第二組數字之后,你要求允許一個空格后跟一個連字符,但我的表達式只允許一個或另一個。我不知道如何准確地解決這個問題,但我希望你能成為一個比以前更接近一個工作解決方案。)

以下是對單個角色發生的情況的解釋:

  • ^ 和 $ 字符分別表示字段的開頭和結尾。
  • \\s 表示空白字符(也可以是制表符或回車符之類的字符。)
  • \\d 是任何數字。
  • + 表示“+”。 (這里需要“\\”,因為“+”是一個特殊字符。)

...以及“修改”字符和組:

  • 問號 (?) 使它之前的事物成為可選(必須為零或出現一次。)
  • 星號 (*) 使前面的事物成為可選(可以出現任意次數。)
  • 括號創建組,因此當您看到問號時,例如,在右括號之后,括號之間的所有內容都是可選的。
  • 花括號表示重復,所以 {1,3} 表示出現 1 到 3 次之前的事物。
  • 方括號提供了選擇,因此 [\\s-] 表示空白字符或連字符。

幾分鍾后,您將更好地了解正則表達式https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

暫無
暫無

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

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