当元素具有重复编号时,在someStringArray.indexOf()
循环中使用forEach
逻辑会被触发。
我正在尝试使用美国电话号码,并以(xxx)xxx-xxxx
的格式使用最初的10位数字作为字符串。然后转换为数组,以便我可以循环遍历并格式化它。
"use strict";
let tel = 5149100499;
let telStr = tel.toString();
let ntel = telStr.split('');
ntel.forEach(char => {
let d = ntel.indexOf(char);
if(ntel.indexOf(char) === 0) {
ntel.splice(d,0,"(");
}else if(ntel.indexOf(char) === 4){
ntel.splice(d,0,")");
}else if(ntel.indexOf(char, 7) === 9){
ntel.splice(d,0,"-");
}
});
let ntelStr = ntel.join('');
console.log(ntelStr);
理想情况下,输出应为:
ntelStr = (514)910-0499
答案 0 :(得分:0)
var tel = 5149100499;
var s = tel.toString();
s = `(${s.substring(0, 3)})${s.substring(3,6)}-${s.substring(6,10)}`
console.log(s);
答案 1 :(得分:0)
您可以使用string#replace
将电话号码转换为所需的格式。
"use strict";
let tel = 5149100499,
result = tel.toString().replace(/(\d{3})(\d{3})(\d{4})/,'($1)$2-$3');
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0;}