我试图从我的手机中只拿2个字符。
我使用了正则表达式匹配^\+55
,这将返回以下示例。
电话号码:+5546342543
结果:46342543
预期结果仅为46
。
我不想使用子字符串作为答案,而是想用正则表达式从电话号码中提取它。
任何人都可以帮助我。 谢谢。
答案 0 :(得分:1)
试试:
'+5546342543'.match(/^\+55(\d{2})/)[1];
答案 1 :(得分:1)
您使用的模式 - ^\+55
- 匹配字符串开头的文字+
和之后的两个5
。
46
是在初始+55
之后出现的子字符串。在某些语言中,您可以使用look-behind(请参阅example)将某些文字与其他文字匹配。
JavaScript没有后备支持,因此,您需要诉诸capturing groups。
您可以使用string#match
或RegExp#exec
获取标有圆括号的捕获文字:
var s = '+5546342543';
if ((m=/^\+55(\d{2})/.exec(s)) !== null) {
document.write(m[1]);
}
此示例处理不匹配时的情况。
答案 2 :(得分:0)
这将得到你想要的东西
"+5546342543".match(/^\+55(.*)/)[1]
答案 3 :(得分:0)
这可以解决您的问题吗?
phoneNumber = "+5546342543"
phone = phoneNumber.substr(3) // returns "46342543"
twoDigits = phoneNumber.substr(3,2) // returns "46"
使用引用的substr()
方法:
substr()
方法返回从指定位置开始的字符串中的字符到指定的字符数。
语法:str.substr(start[, length])
来源:Mozilla MDN