我需要格式化电话号码,例如通过
replace()
:
来自:
+48 XX XXX XX XX
,其中 X
是一个数字。
示例:
+48 12 345 67 89
致:
+48 XXX XXX XXX
示例:
+48 123 456 789
编辑:
我尝试过的:
phone.replace(' ', '');
:之前:
+48 12 312 31 23
之后:
+4812 312 31 23
结论:出了问题,因为它只格式化了第一个空格而不是所有内容。
phone.replace(/(\d{3})(\d{3})(\d{3})(\d{3})/gi, '$1 $2 $3 $4');
和
phone.replace(/(\d{3})" "(\d{3})" "(\d{3})" "(\d{3})/gi, '$1 $2 $3 $4');
以及许多其他类似的配置。
之前:
+48 12 312 31 23
之后:
+48 12 312 31 23
结论:肯定有问题,没有任何改变。问题出在正则表达式上。
仅供参考 -
string.replace()
只会替换您要替换的第一个实例,而 string.replaceAll()
将替换所有实例。
您可以在此处使用正则表达式替换方法:
var input = "+48 12 345 67 89";
var output = input.replace(/\s+/g, "")
.replace(/^(\+\d{2})(\d{3})(\d{3})(\d{3})$/, "$1 $2 $3 $4");
console.log(input + " => " + output);