电话号码只允许数字,+和空格
问题描述:
我想限制电话号码字段仅限于'数字','+'和'空格',或限制'A-Z'。我使用jQuery验证,我曾尝试:电话号码只允许数字,+和空格
jQuery.validator.addMethod("numero", function(value, element) {
return this.optional(element) || value == value.match(/^[+1-9 ]*$/);
});
然而regex
我numero
规则似乎并没有正常工作。
我的代码:
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
}
}
});
});
});
答
我想限制一个电话号码字段只有 '号', '+' 和 '空间'
你regex
,/^[+1-9 ]*$/
,只有匹配1到9,并留出任何零。您可以使用\d
代替任何数字。
因此/^[\d+ ]*$/
将工作。
参见:http://jsfiddle.net/pqjfxbyt/1/
参考:regexr.com
答
也许你想 “0-9”,而不是 “1-9”?
return this.optional(element) || value == value.match(/^[+0-9 ]*$/);
答
试试这个至REGx这将帮助你([0-9 + - ])\ w +
似乎有什么不奏效?验证完全破坏?你的正则表达式不工作?否则,你的代码正在为我工作:http://jsfiddle.net/2dx9jkn2/ – Sparky
** NOTES **:1.你不会把'.addMethod()'方法放在'.each()'里面。这些只是创建新规则,可以在任何地方使用,不需要在页面上多次调用。 2.您忘了为自定义规则定义错误消息。请参阅:http://jsfiddle.net/pqjfxbyt/ – Sparky
谢谢,我试图把'+4400000000'在电话号码字段,但它不工作,如果我把'44 0000 0000'它仍然显示错误'仅数字'在第二个小提琴的第二个形式。 我对这个验证级别相当陌生,所以我猜测很多这方面,关于消息是那些需要的,因为我不希望它们在页面上显示,我使用css突出显示无效字段。 –