我在验证联系人时遇到了正则表达式的问题。不能识别我做错了什么..我用的代码如下
$('#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 并且 +(签名)只出现一次在第一个位置后,+(符号)被禁用。
答案 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;
}
});