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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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,如何改进这个正则表达式,以便只提取字符串中包含“-”或数字之间不存在字符的数字。例如: 我的电话号码是647-871-9067。2013纳税年度$9846.22 应提取[647-871-9067] 或 我的电话号码是6478719067。2013纳税年度$9846.22 应仅提取[6478719067] 这是我写的正则表达式,但它正在提取2013以及电话号码 \b\s\(?([0-9-*)?]*) 下面的代码正则表达式将仅获取电话号码,而不考虑电话号码之间的“-” var string1 =

如何改进这个正则表达式,以便只提取字符串中包含“-”或数字之间不存在字符的数字。例如:

我的电话号码是647-871-9067。2013纳税年度$9846.22

应提取
[647-871-9067]

我的电话号码是6478719067。2013纳税年度$9846.22

应仅提取
[6478719067]

这是我写的正则表达式,但它正在提取
2013
以及电话号码

\b\s\(?([0-9-*)?]*)

下面的代码正则表达式将仅获取电话号码,而不考虑电话号码之间的“-”

var string1 = '647-871-9067. tax year 2013. $9,846.22',
string2 = '6478719067. tax year 2013. $9,846.22',
regx = /(\d{3}-?\d{3}-?\d{4})/g;

string1.match(regx)   // will return "647-871-9067"
string2.match(regx)   // will return "6478719067"

我不能使用限制。我有来自不同国家的用户,每个人都以不同的方式插入电话号码。@ashhad Well可能在某些国家
2013
是一个有效的电话号码。你想对什么是电话号码执行什么规则?可能重复@Andrey请再次阅读我的整个问题。我的问题与你提到的不同。这是完全相同的问题——电话号码的正则表达式。一开始看起来很简单,例如创建一个通用正则表达式+一些额外的角案例。当一个人需要识别越来越多的不同格式时,最好使用经过良好测试的库,例如,来自。要了解这个想法,请检查这个正则表达式中的标点符号:
-x\u2010-\u2015\u212\u30FC\uFF0D-\uFF0F\u00A0\u00AD\u200B\u2060\u3000()\uFF08\uFF09\uFF3B\uFF3D.\[\\]/~\u2053\u23c\uFF5E
。我已经在使用libphonenumber库了。我的问题是如何从一个字符串中提取电话号码,该字符串还包含一行中的其他数字。