Javascript 仅当字符串中存在其他号码时提取电话号码
如何改进这个正则表达式,以便只提取字符串中包含“-”或数字之间不存在字符的数字。例如: 我的电话号码是647-871-9067。2013纳税年度$9846.22 应提取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]
或
我的电话号码是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库了。我的问题是如何从一个字符串中提取电话号码,该字符串还包含一行中的其他数字。