我正在尝试实现一个 JavaScript 函数来替换电话号码的国家/地区代码部分。
输入是+90 (533) 333 33 33,我想用javascript替换+90部分。我尝试编写正则表达式,但没有成功。
/^\++[a-z]+\s$/
编辑:最终解决方案
$("#ddlCountry").change(function () {
if ($("#tMobile").val() == '') {
$("#tMobile").val("+" + $(this).find(":selected").attr("CountryCode")
+ " ");
} else {
$("#tMobile").val($("#tMobile").val().replace(/^(\+\d*)/,
"+" + $(this).find(":selected").attr("CountryCode")));
}
});
以下模式应匹配任何国家代码 http://countrycode.org/,假设国家/地区代码和接下来的数字之间始终存在非数字字符:/^(\+\d*)/
var phoneNumber = "+90 (533) 333 33 33";
phoneNumber = phoneNumber.replace(/^(\+\d*)/, '+852');
alert(phoneNumber);
(在 JSFiddle 上尝试一下 http://jsfiddle.net/AdleyEskridge/cTEqT/)
Edit:好吧...这有点傻,你也可以这样做:
var phoneNumber = "+90 (533) 333 33 33";
phoneNumber = phoneNumber.replace(/^(\+)(\d*)(.*)/, '$1852$3');
alert(phoneNumber);
(在 JSFiddle 上尝试一下 http://jsfiddle.net/AdleyEskridge/6AqgA/)
我试图避免在新的国家/地区代码中包含加号,但除了上面显示的方法之外,我找不到其他方法。本质上,它使用三个捕获组:一组用于加号,一组用于国家/地区代码,一组用于电话号码的其余部分。在新的国家/地区代码中,我将国家/地区代码本身夹在中间$1
and $3
,翻译为:
将旧电话号码替换为新电话号码,该新电话号码由第一个捕获组(加号)、新国家/地区代码(“852”)和电话号码的其余部分(“(533) 333 33 33”)组成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)