2012-04-27 164 views
2

我還沒有看到使用驗證電話號碼和分機的jQuery驗證插件的良好RegEx。有沒有人有這個好的解決方案?所需的格式,可以顯示給用戶:即jquery驗證電話號碼和分機

Example: (555) 555-1234 x 1234

回答

0
// custom extension regex 
phone: function(value, element) { 
    return this.optional(element) || /^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})\s*-?[2-9]\d{2}-?\d{4}(\s*x\s*\d{4})?$/.test(value); 
}, 
1

根據您的文章,您可以使用正則表達式與此類似:

([0-9]{3}) [0-9]{3}-[0-9]{4} x [0-9]{4} 

這可能不完全正確的...你可能不得不使用一些轉義字符,但這應該是基本的想法。

更多閱讀here

3

你可以看看additional-methods.js文件,這裏有幾個選擇。儘管它們都不支持擴展,所以你必須修改一個以匹配你想要的(擴展部分@ jahroy建議)。這是一個類似的:

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})\s*-?[2-9]\d{2}-?\d{4}(\s*x\s*\d{4})?$/); 
}, "Please specify a valid phone number"); 

你必須自己決定是否允許擴展是可選的或不可選(我把它留給可選)。

+0

很棒的傢伙,工作很棒。檢查我的答案我是如何實施的。 – 2012-04-30 20:48:27