2013-06-27 170 views
0

我在regex.i的位周我試圖通過正則表達式驗證電話號碼& jquery,它的工作原理,當我給電話號碼,如+4401634687222或3301634687222.基本上電話號碼可能看起來像下面而那些是無效的。電話號碼驗證使用JQuery&RegEx

+44 (0) 1634 687222 
+44(0)1634687222 
4401634687222 
25805487 

這裏是我的驗證碼。

var regEx = '1?\W*([2-9][0-8][0-9])\W*([2-9][0-9]{2})\W*([0-9]{4})(\se?x?t?(\d*))?'; 
var val = jQuery.trim($("input[id*='txtEnqphone']").val()) 
if (!val.match(regEx)) { 
    if ($('#Enquery_feed_loader').html() != '') { 
     $('#Enquery_feed_loader').fadeOut('slow', function() { 
      $('#Enquery_feed_loader').html('<span>' + dialog_Msg.Invalid_Phone + '</span>'); 
     }).fadeIn('slow'); 
    } else { 
     $('#Enquery_feed_loader').fadeOut('slow', function() { 
      $('#Enquery_feed_loader').html('<span>' + dialog_Msg.Invalid_Phone + '</span>'); 
     }).fadeIn('slow'); 
    } 

    $("input[id*='txtEnqphone']").focus() 
    flag = false; 
    return false; 
} 

所以只是改變我的正則表達式,因爲我可以輸入上述電話號碼。感謝

回答

0

試試這個:

^\(?\d{3}\)?[- ]?\d{3}[- ]?\d{4}$ 
0

試試這個:

^[+][0-9]\d{2}-\d{3}-\d{4}$ 

上述正則表達式將允許以下模式:

+ 974-584-5656 | + 000-000-0000 | + 323-343-3453

而且下面將允許

974-584-5656 | +974 000 0000

編輯:

對於上述正則表達式修改爲:^[0-9]\d{2} \d{3} \d{4}

其他正則表達式,你可以嘗試是:

^(1\s*[-\/\.]?)?(\((\d{3})\)|(\d{3}))\s*[-\/\.]?\s*(\d{3})\s*[-\/\.]?\s*(\d{4})\s*(([xX]|[eE][xX][tT])\.?\s*(\d+))*$ 

允許:2405525009 | 1(240)652-5009

+0

人們可能也會給+ +號,也應該允許。所以在正則表達式中改變that.plus標誌應該是可選的。人們可能會使用也可能不會。 – Thomas

+0

我希望手機不可以或不可以+ sign.phone開頭可能有 - 或()chanracter或可能有空間和長度應該超過6.請你給我準確的正則表達式我的要求。謝謝 – Thomas

+0

你必須玩這個! – PVR