jQuery使用RegExvalidation电话号码

我有一个简单的ajax表单,我正在尝试validation它

  1. 有价值
  2. 该值是一个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