Javascript Regex从电话号码中提取两位数字
我试图从我的手机号码中只提取2个字符。 我使用了regex matchJavascript Regex从电话号码中提取两位数字,javascript,regex,Javascript,Regex,我试图从我的手机号码中只提取2个字符。 我使用了regex match^\+55,这将返回以下示例 电话号码:+5546342543 结果:46342543 预期结果仅为46 我不想使用子字符串作为答案,而是想用regex从phone no中提取答案 有人能帮我吗。 谢谢。试试: '+5546342543'.match(/^\+55(\d{2})/)[1]; 这会得到你想要的 "+5546342543".match(/^\+55(.*)/)[1] 这能解决你的问题吗 phoneNumber
^\+55
,这将返回以下示例
电话号码:+5546342543
结果:46342543
预期结果仅为46
我不想使用子字符串作为答案,而是想用regex从phone no中提取答案
有人能帮我吗。
谢谢。试试:
'+5546342543'.match(/^\+55(\d{2})/)[1];
这会得到你想要的
"+5546342543".match(/^\+55(.*)/)[1]
这能解决你的问题吗
phoneNumber = "+5546342543"
phone = phoneNumber.substr(3) // returns "46342543"
twoDigits = phoneNumber.substr(3,2) // returns "46"
使用引用的substr()
方法:
substr()
方法返回从指定位置开始到指定字符数的字符串中的字符
语法:str.substr(start[,length])
来源:您使用的模式-
^\+55
-匹配字符串开头的一个文本+
,后面的两个5
46
是出现在首字母+55
之后的子字符串。在某些语言中,可以使用(请参见)来匹配前面的某些文本
JavaScript没有look-behind支持,因此,您需要求助于
您可以使用string#match
或RegExp#exec
获取用圆括号标记的捕获文本:
var s='+5546342543';
if((m=/^\+55(\d{2})/.exec(s))!==null){
文件编写(m[1]);
}
为什么要使用regex,而使用子字符串很容易解决?具体要求是什么?是否在开头的+55
之后获取任意两个字符?或者在+55
之后加上2个数字?在大多数情况下,字符串操作比正则表达式快。。。你有一个简单的字符串。。为什么要在子字符串上使用正则表达式?我想现实生活中的问题有点不同:如果需要进一步的帮助,只需在我的答案下添加注释。@Prabhakaran如果你觉得我的答案有用,记得接受它。