Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 逗号分隔电话号码验证_Javascript_Jquery_Html_Regex - Fatal编程技术网

Javascript 逗号分隔电话号码验证

Javascript 逗号分隔电话号码验证,javascript,jquery,html,regex,Javascript,Jquery,Html,Regex,在下面的代码中,我有一个电话号码字段,我想要实现的是确保每个号码都是15位数字,并且确保如果输入了多个电话号码(逗号分隔)(请参阅代码以了解),它们也是15位数字 $(“#btn”)。在('click',function()上{ var regexpr=newregexp(“^(?=\S{10,}$)(?=.*\d{15},)*”; //var regexpr=newregexp(“\d{15}(?:,\d{15})*”); //var regexpr=newregexp(“\d{10,15}

在下面的代码中,我有一个电话号码字段,我想要实现的是确保每个号码都是15位数字,并且确保如果输入了多个电话号码(逗号分隔)(请参阅代码以了解),它们也是15位数字

$(“#btn”)。在('click',function()上{
var regexpr=newregexp(“^(?=\S{10,}$)(?=.*\d{15},)*”;
//var regexpr=newregexp(“\d{15}(?:,\d{15})*”);
//var regexpr=newregexp(“\d{10,15}(?:,\d{10,15})*”);
//var regexpr=newregexp(“^(\d{15}[,]{0,1})+$”;
//var regexpr=newregexp(“^\+\d{10,15}(,\+\d{10,15})*$”;
//var regexpr=newregexp(“^(?=\S{10,}$)(?=.*\d{15},)*”;
if(!regexpr.test($(“#txt”).val())
{
警告(“请输入否”);
返回false;
}
});


检查
这是您案例的工作正则表达式

^\+\d{10,15}(,\+\d{10,15})*$

下面是您案例的工作正则表达式

^\+\d{10,15}(,\+\d{10,15})*$

我相信最好的正则表达式是

^(?=\S{10,}$)(?=.*\d{15},?).*
请在查看演示

这里

确保字符串的长度至少为10

(?=.*\d{15},?)

如果数字长度为15且以逗号分隔,则负责匹配我相信最好的正则表达式是

^(?=\S{10,}$)(?=.*\d{15},?).*
请在查看演示

这里

确保字符串的长度至少为10

(?=.*\d{15},?)

负责匹配长度为15且以逗号分隔的数字

使用
/…/
符号定义正则表达式:

$(“#btn”)。在('click',function()上{
var regexpr=/^\d{15}(?:,\d{15})*^/;
if(!regexpr.test($(“#txt”).val()){
日志(“无效号码,重试”);
返回false;
}否则{
控制台日志(“全部正确”)
}
});


选中
使用
/…/
符号定义正则表达式:

$(“#btn”)。在('click',function()上{
var regexpr=/^\d{15}(?:,\d{15})*^/;
if(!regexpr.test($(“#txt”).val()){
日志(“无效号码,重试”);
返回false;
}否则{
控制台日志(“全部正确”)
}
});

检查
最后我得到了一个解决方案 检查这个答案

var pattern = /^(?:\s*\d{15}\s*(?:,|$))+$/;

if(pattern.test($("#txt").val())){
  alert("Correct");
} else {
  alert("Wrong");
}
``我终于找到了解决办法 检查这个答案

var pattern = /^(?:\s*\d{15}\s*(?:,|$))+$/;

if(pattern.test($("#txt").val())){
  alert("Correct");
} else {
  alert("Wrong");
}

``

regex中的tilde是怎么回事?您使用的是一种PHP方式来声明regex<代码>~
在PHP PCRE中是有效的正则表达式分隔符,但在JS
RegExp
中不是。你正在尝试编写HTML5模式吗?那么,您根本不应该使用正则表达式分隔符。使用
pattern=“\d{15}(?:,\d{15})*”
?@cᴏʟᴅsᴘᴇᴇᴅ 您不能在此处使用backreference,它将匹配相同的逗号分隔数字。@Ashish如果数字长度为10到15个字符,您可以尝试使用
pattern=“\d{10,15}(?:,\d{10,15})*”
。请确认您正在进行提交验证,该验证仅通过HTML5模式即可实现。这是否涵盖了您需要的内容
^(\d{15}[,]{0,1})+$
它验证整个输入,但在最后允许
(参见fiddle)regex中的tilde有什么问题?您使用的是一种PHP方式声明regex<代码>~
在PHP PCRE中是有效的正则表达式分隔符,但在JS
RegExp
中不是。你正在尝试编写HTML5模式吗?那么,您根本不应该使用正则表达式分隔符。使用
pattern=“\d{15}(?:,\d{15})*”
?@cᴏʟᴅsᴘᴇᴇᴅ 您不能在此处使用backreference,它将匹配相同的逗号分隔数字。@Ashish如果数字长度为10到15个字符,您可以尝试使用
pattern=“\d{10,15}(?:,\d{10,15})*”
。请确认您正在进行提交验证,该验证仅通过HTML5模式即可实现。这是否涵盖了您需要的内容
^(\d{15}[,]{0,1})+$
它验证整个输入,但允许在结尾处使用
(请参阅fiddle)