2014-03-12 91 views
0

我想在javascript寫公司的電話號碼正則表達式的商務手機正則表達式,我的要求是:包含的if-else表達

  • 應該只包含數字,破折號和空格
  • 應該不是結束-但可以用空格結束
  • 應該只有1 -兩組 之間
  • 應該有和沒有-1123匹配的數字, 678-78

我已經試過以下的正則表達式,但它不能爲123--,因爲它是無效的一個人,請建議我的東西

/^([ ]*[0-9]+[-]?[0-9 ]*?([-])[ ]*[0-9]+[ ]*|[0-9 ]*[ ]*)+$/.test('123--2') 
+0

它不應以「' - '」結尾,對吧? – user123444555621

+0

@ Pumbaa80是的,它不應該以 - – user3409379

+0

@ Pumbaa80結束你能告訴我我做錯了什麼嗎?(​​exp)yes | no part? – user3409379

回答

0

試試這個

/^[0-9]+(-[0-9\s]+)*$/ 
+1

@ Pumbaa80它爲'1'返回false,我的要求是它應該是真實的 – user3409379

0

我不知道如果你仍然需要這個答案,但這適用於你的要求:

/^(?!.+-\s*$)\s*((?:\d+\s*-?\s*)+)$/ 

說明:

  • ^串的開始
  • (?!.+-\s*$)禁止-(或-接着空白)在字符串的末尾
  • \s*可選前導空格
  • (開始捕獲
  • (?:\d+\s*-?\s*)+ one或多個基團的以下內容:
    • 一個或多個數字,
    • 可能隨後由空格,
    • 可能接着是一個連字符,
    • 可能跟隨多個空格
  • )停止拍攝
  • $字符串末尾

Demo