jQuery使用RegExvalidation电话号码
我有一个简单的ajax表单,我正在尝试validation它
- 有价值
- 该值是一个10位数字
我正在尝试使用RegEx这样做。 这是我到目前为止所拥有的。
var reg = new RegExp("/[0-9]{10}/"); $("#call_form").bind("submit", function() { if ($("#call_number").val().length < 1 && reg.test($("#call_number").val())) { $("#call_error").show(); return false; } });
我知道问题与RegExp有关,好像我删除了这部分代码,它validation了该框有一个值。
编辑 :这是我正在使用的最终正则表达式
var regEx = new RegExp("/[0-9]/"); $("#call_form").bind("submit", function() { if ($("#call_number").val().length != 10 && !$("#call_number").val().match(regEx)) { $("#call_error").show(); $.fancybox.resize(); return false; } });
编辑2使用这里的建议是我的标志,它允许空格和短划线然后被检查剥离
$("#call_form").bind("submit", function() { var Phone = $("#call_number").val().replace(/\D+/g,''); if (Phone.length != 10) { $("#call_error").show(); $.fancybox.resize(); return false; } });
你的正则表达式对我来说很好……你可以缩短它到/[0-9]{10}/
。
你的问题在这里:
$("#call_number").val().length < 1
。 如果数字是10个字符长,它永远不会少于1,不是吗?
你可能意味着这样的事情:
$("#call_number").val().length === 10
没有人说你原来的努力有什么问题 – 这是斜杠(/)。 当调用RegExp作为构造函数时,您不需要斜杠(这是一个表示正则表达式的标记),例如:
var re = /\w+/i;
相当于:
var re = new RegExp('\\w+','i');
请注意,您必须引用特殊字符的反斜杠。
最后一件事 – 允许数字中的空格。 您可以在测试或存储之前删除它们。 用户发现以3或4位数字块读取数字要容易得多,例如
- 1234 871 098比1234871098更容易阅读。
以下是我使用的内容 – 如果有人正在搜索相同的内容,那就是简单的发布。
var a = PHONE_FROM_FIELD; var filter = /^[0-9-+]+$/; if (filter.test(a)) { return true; } else { return false; }
干杯!
像这样的东西:
var regEx = /^(\+\d)*\s*(\(\d{3}\)\s*)*\d{3}(-{0,1}|\s{0,1})\d{2}(-{0,1}|\s{0,1})\d{2}$/; $("#call_form").bind("submit", function() { var val = $("#call_number").val(); if (!val.match(regEx)) { $("#call_error").show(); return false; } });
function validate_Phone_Number() { var number = $('field_Id').val(); var filter = /^((\+[1-9]{1,4}[ \-]*)|(\([0-9]{2,3}\)[ \-]*)|([0-9]{2,4})[ \-]*)*?[0-9]{3,4}?[ \-]*[0-9]{3,4}?$/; if (filter.test(number)) { return true; } else { return false; } }
// check phone number validation function validatePhoneNumber(number) { count=number.length; if(number[0]!=" " && number[0]!="-" && number[count-1]!=" " && number[count-1]!="-") { temp=number.replace(" ", ""); temp=temp.replace("-", ""); if($.isNumeric(temp)) { if(temp.length>=7 && temp.length<=12) { flag=1; for(i=1;i