regex 使用Javascript格式设置电话号码

z9ju0rcb  于 2022-11-26  发布在  Java
关注(0)|答案(2)|浏览(164)

我需要格式化电话号码,例如replace()

发件人:+48 XX XXX XX XX,其中X是一个数字.

示例:+48 12 345 67 89

收件人:+48 XXX XXX XXX

示例:+48 123 456 789

编辑:

我的作品:

  • 首先,我尝试删除string中的空格:phone.replace(' ', '');

之前:+48 12 312 31 23
之后:+4812 312 31 23
结论:有些东西是错误的,因为它只格式化了第一个空格,而不是所有的东西。

  • 我还试图根据其他有关regex的问题将它分成几个部分:

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
结论:可以肯定的是,出了问题,没有变化。问题出在正则表达式上。

fnvucqvd

fnvucqvd1#

仅供参考-string.replace()将仅替换您要替换的任何对象的第一个示例,而string.replaceAll()将替换所有示例。

iyfamqjs

iyfamqjs2#

您可以在此处使用正则表达式替换方法:

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);

相关问题