我正在寻找一种方式来重新格式化电话号码以便在Javascript中显示。下面是一些数据的一个示例:将字符串格式化为某种格式
00-22 345 991
12450-123948
我想重新格式化为类似于以下3长度格式的数目:555-922-134
假设可以忽略破折号和空格,最后两个块的长度可以是2:002-234-59-91
或124-501-349-48
我正在寻找一种方式来重新格式化电话号码以便在Javascript中显示。下面是一些数据的一个示例:将字符串格式化为某种格式
00-22 345 991
12450-123948
我想重新格式化为类似于以下3长度格式的数目:555-922-134
假设可以忽略破折号和空格,最后两个块的长度可以是2:002-234-59-91
或124-501-349-48
你可以使用正向表达式的正则表达式。
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));