2013-03-05 33 views
1

我有一個要求,我必須使用正則表達式對傳真號碼進行驗證檢查。傳真號碼中接受的字符是+。和數字從0到9.爲此我寫了以下JavaScript函數使用正則表達式驗證javascript中的傳真號碼

function validateFax(checkField) { 
    if (checkField.value.length > 0) { 
     var faxRegEx = /[\+? *[1-9]+]?[0-9 ]+/; 
     if (!checkField.value.match(faxRegEx)) { 
      return false; 
     } 
    } 
    return true; 
} 

但它不幫助我檢查所有可接受的字符。此外,它只檢查3到4個字符,但我的傳真號碼可以包含任意數量的字符。我是Regex新手。任何人都可以告訴我如何修改此功能以使其與我的要求保持一致。提前致謝。

+0

該正則表達式看起來不正確。 '[]'裏面的'[]'? – elclanrs 2013-03-05 06:39:07

回答

2
/^\+?[0-9]+$/ 

上面的正則表達式允許在數字開頭有一個+符號。然後0-9可以出現任意次數(大於等於1)。所以這個正則表達式將允許:+123456789123456789

如果你想限制的最小位數,可以修改以下列方式正則表達式:

/^\+?[0-9]{6,}$/ 

這裏{6,}表示[0-9]必須出現至少 6次。

+0

嘿,這真的有幫助,但我的可接受的性格還包括'。'(點)。我該如何管理?而且最後這個$是什麼意思呢? – milind 2013-03-05 07:09:37

+0

爲了迎合''',你可以在'[0-9]'中包含'.'。所以你的最終正則表達式看起來像'/^\ +?[0-9。] {6,} $ /'。 「^」和「$」符號是開始和結束錨點。如果'$'符號不在正則表達式的末尾,那麼您的正則表達式也會接受'+ 1asdf'作爲輸入。因爲它是以'+'開始的,這是允許的,然後是一個數字。因此,在末尾放置'$'可以確保整個輸入遵循正則表達式。 – 2013-03-05 07:15:46

+0

謝謝完全理解 – milind 2013-03-05 07:23:32

0

這可能做的伎倆:

fax.match(/^\+?[0-9]{7,}$/); 

我在這裏假設一個傳真號碼至少有7個數字和+一開始是可選的。

相關問題