我想通过正则表达式验证输入。如果用户在a到z或A到Z中输入任何字符,那么它将不被接受,但如果用户输入+符号或括号或任何数字,则它将被接受。我使用正则表达式,但它没有按照我的要求工作。
var regEx = '/^[A-Za-z]*$/';
if (flag) {
var val = jQuery.trim($("input[id*='txtfphone']").val())
if (val.match(regEx)) {
if (_AdjustHeight == 0) {
$(".ui-dialog").animate({ height: '+=' + dialog_loader.height + 'px' }, 600, function () {
_AdjustHeight = 1;
$('#feed_loader').fadeIn('slow').html('<span>' + dialog_Msg.Invalid_Phone + '</span>');
$("input[id*='txtfphone']").focus()
});
}
else if (_AdjustHeight == 1) {
$('#feed_loader').fadeOut('slow', function () {
$('#feed_loader').html('<span>' + dialog_Msg.Invalid_Phone + '</span>');
}).fadeIn('slow');
$("input[id*='txtfphone']").focus()
}
flag = false;
return false;
}
}
所以帮我正确的正则表达式。 如果用户输入
等数据,将被接受+913325806589
+91 33 25806589
913325806589
91 33 25806589
91 (33) 25806589
+91 (33) 25806589
但如果用户输入任何字母作为输入,则不会被接受。像
aaab
+a913325806589
+91332a5806589
+91332a5806589b etc
a到z任何角色都不会被接受。感谢
答案 0 :(得分:0)
这个能满足你的需求吗?
var regEx = /^\+?\d+[\d\s]*(\s*\(\d+\)\s*\d*)*$/ //no quote !!
为你的
var regEx = '/^[A-Za-z]*$/'
您已将regEx
定义为字符串,因此不会产生任何影响。
答案 1 :(得分:0)
您正在使用的regrex锚定在开头和结尾,这意味着它只会在输入只包含字母时匹配。例如,它不匹配“12a”。
它也无法检查你没有提到的所有其他无效字符......!£#@ etc。
最好使用与您想要的匹配的正则表达式,然后查看输入是否匹配。
根据您的描述和示例,这应与有效输入匹配:
/^\s*\+?[\d\s]*(\([\d\s]+\)?)[\d\s]*$/
然后你需要否定你的匹配测试:
if (!val.match(regEx)) {