当前位置: 首页 > 知识库问答 >
问题:

电话正则表达式空间[重复]

邵俊才
2023-03-14

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

例如57 52 5252255应该传递,但目前它没有传递。91 9 820 09 8200也应该传递,所以任何地方的空间都是可以接受的

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

https://jsfiddle.net/ofn9knay/268/

共有2个答案

齐冥夜
2023-03-14

我们可以尝试调整现有的复杂正则表达式,但假设您已经将电话号码作为变量的输入,那么一件简单的事情就是删除所有空白:

var phone_regex =/^\s*(?:\+?(\d{1,3}))?[- (]*(\d{3})[- )]*(\d{3})[- ]*(\d{4})(?: *[x/#]{1}(\d+))?\s*$/;
var phone = "+91 9 820 09 8200";
phone = phone.replace(/ /g,'');
console.log(phone_regex.test(phone));
贡和裕
2023-03-14

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

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

test_strings = [
    "+57 52 5252255",
    "9820098200#301",
    "+919820098200",
    "+91-982-009-8200",
    "+1 (866) 582-2655",
    "+91 444 741 4000",
];

for (var i = 0; i < test_strings.length; i++) {
  console.log(test_strings[i] + ": " + pattern.test(test_strings[i]));
}
 类似资料:
  • 本文向大家介绍Java正则表达式匹配电话格式,包括了Java正则表达式匹配电话格式的使用技巧和注意事项,需要的朋友参考一下 大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 Java正则表

  • 问题内容: 该字符串不应包含SSN或电话号码。下面的正则表达式不起作用,它仅接受xxxxxxxxx格式。 不应包含或或。 问题答案: 您可以尝试: 解释一下,如果我们阅读了您提供的查询: 我们可以读到:( 在我的顶部版本中,我改写为:。)。 保证世界上任何字符串都不匹配其中至少两个,因此它们的组合始终为真,从而为您提供了一个简单得多的有效正则表达式: 是零宽度的断言,因此它不消耗任何东西。即使匹配

  • 在注册会员时,经常需要输入电话号码,电话号码是指手机号码或者固定电话。如果输入的内容不合法,则会向用户输出提示。本实例模拟实现电话号码的验证功能,接收用户在控制台输入的电话号码,然后进行判断,并将结果输出。 在这里使用《 Java正则表达式》一节中讲到的正则表达式支持的字符来实现,步骤如下。 (1) 创建名为 Test21.java 的 Java 文件,在 main() 方法中开始编写代码。 (2

  • 我正在尝试编写一个正则表达式,使其只有两个单词,它们之间只有一个空格。两个字都不能少于三个字符。例子:乔·史密斯

  • 我在java中有以下正则表达式- 但这仍然匹配“”。 整个代码-

  • 我正在修改一个脚本。该脚本包含一个表单,允许访问者向电话号码发送短信。在表单中,我有一个文本框,用户在其中输入文本接收器的电话号码。我正在使用正则表达式验证电话号码,以防止垃圾邮件发送者,并确保用户键入正确的号码。 以下是阿富汗使用的默认电话号码: 正则表达式验证首先应该确保使用93,然后确保在93之后使用78、77、79或700(其中之一),最后是6位数。 下面是我试图修复的Javascript