2016-11-18 72 views
-1

我有以下的正則表達式:正則表達式強制VS可選

/[0-9\s-.]{8,10}/ 

它的目的是讓我去檢測,如果用戶輸入任何內容,這可能是一個電話號碼(澳大利亞)爲描述區域和建議他們不這樣做。它可以很好地匹配可能具有空格點或連字符的數字。

不幸的是它也會匹配像「-----------」之類的東西。我怎樣才能讓比賽所需的數字和其他類型可選?

+1

你能列舉你定位的電話號碼的例子嗎? – Ibrahim

+2

在「Javascript正則表達式電話號碼」中輸入了幾十個與此類似的問題。這些答案是否有理由回答你的問題? – TemporalWolf

回答

0

你已經差不多了。你真正需要的是這樣的:

(?:\(\d\d?\)[\s-.])?\d{4}[\s-.]\d{4} 

Demo on Regex101

要打破它一點:

  • (?:\(\d\d?\)[\s-.])?是最嚇人的前瞻性部分,真的只是描述了一個可選的區號括號,後跟任意一個空白字符,短劃線或句點。
  • \d{4}描述了其餘數字的兩個部分之一。
  • [\s-.]是一個字符類,它(在這種情況下)將匹配空白字符,短劃線或句點。