2017-02-19 41 views
1

我正在寻找一种方式来重新格式化电话号码以便在Javascript中显示。下面是一些数据的一个示例:将字符串格式化为某种格式

00-22 345 991

12450-123948

我想重新格式化为类似于以下3长度格式的数目:555-922-134

假设可以忽略破折号和空格,最后两个块的长度可以是2:002-234-59-91124-501-349-48

回答

3

你可以使用正向表达式的正则表达式。

Positive Lookahead寻找等号后面的模式,但不包括它在匹配中。

X(ω= Y)

相配的 'x' 仅当 'X' 之后是 'Y'。这被称为前瞻。

例如,/Jack(?=Sprat)/只有跟着'Sprat'才匹配'Jack'。 /Jack(?=Sprat|Frost)/只有跟着'Sprat'或'Frost'才匹配'Jack'。然而,“斯普拉特”和“弗罗斯特”都不是比赛结果的一部分。

function format(s) { 
 
    return s.toString().replace(/\D/g, '').replace(/\d{2,3}(?=..)/g, '$&-'); 
 
} 
 

 
console.log(format('00-22 345 991')); 
 
console.log(format('555922134')); 
 
console.log(format('12450-123948')); 
 
console.log(format(123456789)); 
 
console.log(format(12345678901)); 
 
console.log(format(1234567));

0

晚上好! :)

这已在上一个主题中得到解答。 :)

Insert hyphens in javascript

希望这有助于出来 - 有一个美好的夜晚:)