jQuery验证电话号码
我想验证电话号码为: (000)111-1111 我正在使用此代码段,如果用户只输入数字,则工作正常。但如果他开始一个括号,所有崩溃..我真的需要帮助......jQuery验证电话号码
$("input#phone1,input#phone2").keyup(function() {
var curchr = this.value.length;
var curval = $(this).val();
//var numericReg = /^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/;
var numericReg = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;
if(!numericReg.test(curval)) {
$(this).prev('label').append(tag_error + numeric_chars_only + end_tag);
console.log($(this)+numeric_chars_only);
}
if (curchr == 3) {
$("input#phone1").val("(" + curval + ")" + " ");
} else if (curchr == 9) {
$("input#phone1").val(curval + "-");
}
});
我会建议使用这样的:(?\ d {3})???
^[ - ] \ d {3} [ - ] \ d {4} $
它允许 (555)555-5555, 5555555555, 555 555 5555, 555-555-5555, (555)-555-5555
ETC.
我觉得这是你所需要的:
/^\(\d{3}\) \d{3}-\d{4}$/
var x = '(000) 111-1111'.replace(/^\(\d{3}\) \d{3}-\d{4}$/, "");
alert(x); // alerts empty string. the regular expression worked.
是的,但如果用户开始输入“括号”,则片段会将第一个char更改为brcket,然后是所有崩溃:S如果用户输入 – 2012-03-29 18:01:50
@AngelM,则需要防止更改括号。你能举个例子吗?你是什么意思? – gdoron 2012-03-29 18:02:34
如果没有括号或空格或短划线,这不起作用,我想OP也想这样做:-) – altschuler 2012-03-29 18:04:40
“tag_error”,“numeric_chars_only”和“end_tag”定义在哪里? – 2012-03-29 18:05:45
这只是提醒用户.. – 2012-03-29 18:06:29
嗨!嗯,我已经为你创建了这个 - http://jsfiddle.net/5NCQg/18/你可以给我们演示一个演示你的意思是onkeyup验证? :)此外http://*.com/questions/995183/how-to-allow-only-numeric-0-9-in-html-inputbox-using-jquery **或** http:// *。 com/questions/6960596/jquery-for-phone-numbers-example-of-a-regular-expression可能会给你更好的想法!欢呼 – 2012-03-29 18:26:00