Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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_Regex - Fatal编程技术网

Javascript 电话正则表达式空间

Javascript 电话正则表达式空间,javascript,regex,Javascript,Regex,我有这个电话正则表达式,但我想让它接受空格 例如+57 52 5252255应该通过,但目前它没有通过。 另外+919820 098200应该通过 所以任何地方的空间都是可以接受的 var phone_regex =/^\s*(?:\+?(\d{1,3}))?[- (]*(\d{3})[- )]*(\d{3})[- ]*(\d{4})(?: *[x/#]{1}(\d+))?\s*$/; 为了匹配该字符串,您的第二个捕获组需要接受2或3位数字 模式=/^\s*?:\+?\d{1,3}?[-]*

我有这个电话正则表达式,但我想让它接受空格

例如+57 52 5252255应该通过,但目前它没有通过。 另外+919820 098200应该通过 所以任何地方的空间都是可以接受的

var phone_regex =/^\s*(?:\+?(\d{1,3}))?[- (]*(\d{3})[- )]*(\d{3})[- ]*(\d{4})(?: *[x/#]{1}(\d+))?\s*$/;

为了匹配该字符串,您的第二个捕获组需要接受2或3位数字

模式=/^\s*?:\+?\d{1,3}?[-]*\d{2,3}[-]*\d{3}[-]*\d{4}:*[x/]{1}\d+?\s*$/; 测试字符串=[ +57 52 5252255, 9820098200301, +919820098200, +91-982-009-8200, +1 866 582-2655, +91 444 741 4000, ]; 对于var i=0;i<测试长度;i++{ console.logtest_strings[i]+:+pattern.testtest_strings[i];
} 我们可以尝试调整现有的复杂正则表达式,但假设您已经将电话号码作为变量的输入,那么一件简单的事情就是删除所有空白:

变量phone\u regex=/^\s*?:\+?\d{1,3}?[-]*\d{3}[-]*\d{3}[-]*\d{4}?:*[x/]{1}\d+?\s*/; var电话=+91 9 820 09 8200; phone=phone.replace//g,;
console.logphone_regex.testphone;相关:只是一个想法,我相信有人会为您修复正则表达式,但我会尝试在验证数字之前去掉所有不必要的符号和空格。通过这种方式,您可以在将电话号码插入数据库之前定义自己的格式。我希望空间位于任何位置而不是某些位置当前正则表达式不接受号码集之间的空格。是否需要一个正则表达式,该正则表达式将匹配一组无限重复的空格/破折号分隔的任意长度的数字序列?第二组只能用括号括起来吗?最重要的是,您有额外的测试字符串吗?我当前的正则表达式不允许空格,正如您在fiddle@Jamesmarcus你真的读过我的答案吗?我建议在你应用当前的正则表达式之前去掉数字中的空格。哦,我知道了,但现在这是我的代码。我如何调整它以实现你的建议?@Jamesmarcus你的演示有点薄,至少就不是真正的演示而言。只要在phone number变量上调用.replaece//g,那么您的代码就有问题了。在演示中,逻辑运行良好。