2012-09-16 187 views
1

下面是我目前的代碼。我需要確保它始終具有十位數的完整電話號碼。有沒有人有適當的正則表達式代碼? 「美國號」jquery驗證電話號碼

"phone": { 
    // credit: jquery.h5validate.js/orefalo 
    "regex": /^([\+][0-9]{1,3}[ \.\-])?([\(]{1}[0-9]{2,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/, 
    "alertText": "* Invalid phone number" 
} 
+0

你似乎忘記了問一個問題。 – verdesmarald

回答

1
<script> 
    $(document).ready(function(){ 
    jQuery.validator.addMethod("phoneUS", function(phone_number, element) { 
    phone_number = phone_number.replace(/\s+/g, ""); 
    return this.optional(element) || phone_number.length > 9 && 
     phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/); 
}, "Please specify a valid phone number"); 

$("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     phoneUS: true 
    } 
    } 
}); 
    }); 
    </script> 
1

請參閱:A comprehensive regex for phone number validation更全面的答案。但是,我認爲這是你想要的正則表達式:

^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$ 
+0

沒有工作。同樣的結果。 –

+0

究竟發生了什麼? –

+0

它只接受1個號碼。所以只要有人填寫表格並輸入一位數字,就可以讓他們前進。我想確保他們輸入完整的10位數的美國電話號碼。 –