2016-03-01 41 views
-2

我想限制电话号码字段仅限于'数字','+'和'空格',或限制'A-Z'。我使用jQuery验证,我曾尝试:电话号码只允许数字,+和空格

jQuery.validator.addMethod("numero", function(value, element) { 
    return this.optional(element) || value == value.match(/^[+1-9 ]*$/); 
}); 

然而regexnumero规则似乎并没有正常工作。

我的代码:

jQuery(document).ready(function(){ 

    jQuery.validator.addMethod("alpha", function(value, element) { 
     return this.optional(element) || value == value.match(/^[a-zA-Z ]*$/); 
    }); 


    jQuery.validator.addMethod("numero", function(value, element) { 
     return this.optional(element) || value == value.match(/^[+1-9 ]*$/); 
    }); 

    jQuery('.upsale-form').each(function() { 
     jQuery(this).validate({ 
      rules: { 
       'Contact.name': { 
        minlength: 3, 
        required: true, 
        alpha: true 
       }, 
       'Contact.email': { 
        required: true, 
        email: true 
       }, 
       'Contact.phone': { 
        minlength: 9, 
        required: true, 
        numero: true 
       } 
      } 
     }); 

    }); 
}); 
+0

似乎有什么不奏效?验证完全破坏?你的正则表达式不工作?否则,你的代码正在为我工​​作:http://jsfiddle.net/2dx9jkn2/ – Sparky

+0

** NOTES **:1.你不会把'.addMethod()'方法放在'.each()'里面。这些只是创建新规则,可以在任何地方使用,不需要在页面上多次调用。 2.您忘了为自定义规则定义错误消息。请参阅:http://jsfiddle.net/pqjfxbyt/ – Sparky

+0

谢谢,我试图把'+4400000000'在电话号码字段,但它不工作,如果我把'44 0000 0000'它仍然显示错误'仅数字'在第二个小提琴的第二个形式。 我对这个验证级别相当陌生,所以我猜测很多这方面,关于消息是那些需要的,因为我不希望它们在页面上显示,我使用css突出显示无效字段。 –

回答

1

我想限制一个电话号码字段只有 '号', '+' 和 '空间'

regex/^[+1-9 ]*$/,只有匹配1到9,并留出任何零。您可以使用\d代替任何数字。

因此/^[\d+ ]*$/将工作。

参见:http://jsfiddle.net/pqjfxbyt/1/

参考:regexr.com

1

也许你想 “0-9”,而不是 “1-9”?

return this.optional(element) || value == value.match(/^[+0-9 ]*$/); 
0

试试这个至REGx这将帮助你([0-9 + - ])\ w +

相关问题