Javascript UK电话号码美化者

Javascript UK电话号码美化者

问题描述:

我输入了一个随机英国电话号码(“015395 30612”)。我想创建一个函数让我们说phoneBeautifier(字符串){},这将输出相同的字符串,但使它看起来“美丽”。例如,输出可能是:+44(0)1539 530612Javascript UK电话号码美化者

与正则表达式我很糟糕,有没有其他方法?

+0

你能解释一下号码的格式?如果可以验证,可以将其格式化......不熟悉英国的数字。 – bryc

+0

+44是国家代码。从英国以外打电话时,您减去0.在英国境内打电话时,您知道需要更长的时间,但您需要前面的0到01539 530612. 1539我猜是代码。 – Bobys

+0

试试更好的控制和实用程序。它基于Google的libphonenumber库。 https://github.com/albeebe/phoneformat.js?files=1 – Adapter

var phoneNumber="015395 30612"; 
 
function format(phoneNumber) { 
 
    return phoneNumber.replace(/\s+/g, '').replace(/(.)(\d{4})(\d)/, '+44 ($1)$2 $3'); 
 
} 
 
['015395 30612','01539530612'].forEach(function(phoneNumber){ 
 
    console.log(format(phoneNumber)); 
 
});

你可以尝试格式(..)方法instead.this功能支持所有的情况。

+0

谢谢holi-java。有用!这似乎是一个正则表达式。正如我所说的,我对它很不好。你有可能给我一个关于它如何工作的解释吗? – Bobys

+0

请注意,这适用于问题中的确切输入,但不适用于其他任何内容。它不会为没有空间的“01539530612”做任何事情。 – JJJ

+0

是的,正则表达式只支持你的问题,而你没有提供所有的要求,所以它在情况上失败了。 –

尝试这样:

function phoneBeautifier(number) { 
 
    return number.replace(/^(\d)(\d{5})\s*(\d{5})/, '+44 ($1)$2 $3'); 
 
} 
 
var beautifulPN = phoneBeautifier("01539530612"); 
 
console.log(beautifulPN);