簡體   English   中英

如何使用jquery檢查Tel:區號是否正確?

[英]How to check If a Tel: area code is correct using jquery?

我需要檢查給定的電話區號是否正確。 我創建了一個輸入字段,用戶可以插入電話區號,如00440090等。 我將輸入字段限制為4個字符。 輸入區號正確后,我需要檢查輸入的4個字符。

它應該做什么。 輸入4號后,腳本應檢查以下內容。 如果alert("please enter correct tel areacode");沒有alert("please enter correct tel areacode");是否alert("please enter correct tel areacode");是否等於"00{number 2 digit only}" alert("please enter correct tel areacode");

我希望我能清楚地解釋我的問題。 我該如何使用javascript或jquery?

“ 0000”是有效的區號嗎? 它有“ 00”后跟兩位數字...但是我假設代碼是00,然后是10或更高的數字。

$('input.phone').keyup( function(){
  var num = $(this).val(), i = parseInt(num, 10), valid = true;
  if(num.length==4 && (i<9 || i>99) ){
    //phone number is invalid
  }
});

但是我認為模糊事件在這里會更加有用,因為如果用戶僅輸入三位數字,上述功能就不會通知用戶。 焦點將在焦點移出輸入框后立即出現,而不是鍵入第四位后立即出現。 所以我的主張是:

$('input.phone').blur( function(){
  var num = $(this).val(), i = parseInt(num, 10), valid = true;
  if(num.length != 4 || i<9 || i>99 ){
    //phone number is invalid, notify the user
  }
});

編輯 :我以為您正在驗證某種特定於您的國家的區號。 如果您想驗證國際電話代碼,則不妨查看以下列表: http : //en.wikipedia.org/wiki/List_of_country_calling_codes-有很多+ XXX(或00XXX)號碼,這些號碼不適合您的4個字符長輸入。 而且許多數字不是+ XX(00XX)格式,例如美國的+1(001)。 我認為您應該只檢查它是+還是00,然后是零以外的至少一位數字,然后輸入即可。

/^(\+|00)[1-9]/.test( input.value );

這樣的事情應該起作用:

$('#field').keyup(function() {
    var value = $(this).val();

    // Restrict length to 4 characters
    if(value.length > 4) {
        value = value.substring(0, 3);
        $(this).val(value);
    }

    // Test is value equals to "00{number 2 digit only}"
    if(/00\d{2}/.test(value)) {
        // Is valid
    } else {
        // Not valid
    }
});

我會避免在無效部分上使用alert ,因為這會在用戶每次按下按鍵時給用戶一個警報框。

暫無
暫無

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

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