验证联系号码时正则表达式问题

时间:2015-07-16 09:50:46

标签: jquery regex

我在验证联系人时遇到了正则表达式的问题。不能识别我做错了什么..我用的代码如下

  $('#contact_no').bind('keypress', function (event) {
       var regex = new RegExp("^[+0-9\b]");
       var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
       if (!regex.test(key)) {
           event.preventDefault();
           return false;
       }
   });

我想要的不是从+(符号)开始,它是修饰性的用户可以输入 + xxxxxxxxxx或xxxxxxxxxx 并且 +(签名)只出现一次在第一个位置后,+(符号)被禁用。

1 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式:

var regex = /^\+?[0-9]+$/;

此处无需使用RegExp对象,因为您可以使用正则表达式文字来完成工作。

此正则表达式允许在开始时有一个可选的+,后跟一个或多个数字。

更新:

问题是使用keypress事件进行绑定。这是将每个输入的字符发送到此代码。

您可以使用:

$('#contact_no').bind('submit focusout', function (event) {
       var regex = /^\+?\d+$/;
       var key = $('#contact_no').val();
       if (!regex.test(key)) {
           event.preventDefault();
           console.log("Invalid value: " + key);
           return false;
       }
});

JSFiddle Demo