Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
Regex 带空格、加号、连字符和方括号的数字的正则表达式_Regex_Phone Number - Fatal编程技术网

Regex 带空格、加号、连字符和方括号的数字的正则表达式

Regex 带空格、加号、连字符和方括号的数字的正则表达式,regex,phone-number,Regex,Phone Number,我在找regex的电话号码,但似乎找不到我需要的 要求 以加号(可选)开始,例如+442021234 允许使用支架(可选),例如(+44)2021234 允许任意长度的数字 允许数字之间有空格,例如(+44)202 1234 允许连字符,例如(+44)-202-1234 基本上,我们希望允许用户输入带有常见特殊字符的电话号码,并使用JavaScript onBlur删除这些字符。非常感谢您的帮助。您可以尝试以下正则表达式: /(?:\(?\+\d{2}\)?\s*)?\d+(?:[ -]*\

我在找regex的电话号码,但似乎找不到我需要的

要求

  • 以加号(可选)开始,例如+442021234
  • 允许使用支架(可选),例如(+44)2021234
  • 允许任意长度的数字
  • 允许数字之间有空格,例如(+44)202 1234
  • 允许连字符,例如(+44)-202-1234

基本上,我们希望允许用户输入带有常见特殊字符的电话号码,并使用JavaScript onBlur删除这些字符。非常感谢您的帮助。

您可以尝试以下正则表达式:

/(?:\(?\+\d{2}\)?\s*)?\d+(?:[ -]*\d+)*$/

既然您计划不考虑字符的剥离,为什么不先剥离字符,然后验证您是否拥有所需长度的数字,而不是匹配格式

// strip all non-numeric values
var number = number.replace(/[^\d]/g, '');

// validate we have a number of a specific length
if (number.length == 9) {
    // valid number =]

}
如果您有额外的“数字”规则,例如必须以
44
开头,则可以在删除字符后使用正则表达式:

if (number.match(/44\d{7}/)) {
    // we have a (+44)* number

}

考虑下面的正则表达式

^\(?\+?[\d\(\-\s\)]+$

祝你好运

到目前为止你试过什么?这是一个很长的需求列表(不包括字符的剥离);您是否有我们可以帮助调试的代码,或者您要求我们为您编写的代码?为什么不先去掉字符,然后使用
^\d{9}$
验证您是否有9位正则表达式数字?这样,当您显示数字时,您可以按照自己的意愿再次格式化,以使其一致。由于网站的设置方式,我无法在验证前去除值,因为这是自动触发的。所以我想允许用户输入加号、连字符、方括号和空格,并在验证后用JS将它们去掉。电话号码分为3个独立的输入字段(国家代码、区号和电话号码)。这是一个大系统,所以我有很多限制-一个是我必须在所有三个框上使用相同的正则表达式,所以我不想限制用户可以输入多少数字。谢谢大家的帮助!这似乎涵盖了我所寻找的大部分,但我需要它不允许字母,理想情况下只有一个加号在数字的开头。这可能吗?这将不允许使用字母,
+
仅在开始时是可选的。你不需要吗?谢谢,没错。我需要一个单独的正则表达式来列出特殊字符,这样在执行时就不会触发验证。带加号、连字符和方括号的正则表达式。那么我应该去掉匹配的
+
()
?我想回答原来的问题-是的。但是,如果您还可以编写一个只允许“+”、“-”和“()”的新正则表达式,那就太好了!