Javascript 使用正则表达式呈现格式化的电话号码
我正在用Angular编写一个管道,根据字符串中包含的内容呈现相应的格式化电话号码 输入:字符串 需要提供的可能案例: +1(123)456-7891(国家代码+趋势) (123)456-7891(十位数) (123)456-7891 ext1234(带扩展的卷尺) +1(123)456-7891 ext1234(国家代码、趋势、分机) 我当前的代码:Javascript 使用正则表达式呈现格式化的电话号码,javascript,regex,angular,Javascript,Regex,Angular,我正在用Angular编写一个管道,根据字符串中包含的内容呈现相应的格式化电话号码 输入:字符串 需要提供的可能案例: +1(123)456-7891(国家代码+趋势) (123)456-7891(十位数) (123)456-7891 ext1234(带扩展的卷尺) +1(123)456-7891 ext1234(国家代码、趋势、分机) 我当前的代码: const rawPhoneNumber = '1(626) 423-3343 ex123' const pattern = /(\d{1})?
const rawPhoneNumber = '1(626) 423-3343 ex123'
const pattern = /(\d{1})?([a-zA-Z\d]{3})([a-zA-Z\d]{3})([a-zA-Z\d]{4})(.*)/
const matches = rawPhoneNumber.replace(/[\W_]*/g, '').match(pattern);
let arrOfDigits = matches.filter((item, index) => item != undefined);
arrOfDigits = arrOfDigits.filter((item, index) => item.length)
// simple Phone
if (arrOfDigits.length === 4) {
console.log(`(${arrOfDigits[1]}) ${arrOfDigits[2]}-${arrOfDigits[3]}`)
}
// prephonesuffix
if (arrOfDigits.length === 6) {
console.log(`+${arrOfDigits[1]} (${arrOfDigits[2]}) ${arrOfDigits[3]}-${arrOfDigits[4]} ${arrOfDigits[5]}`)
}
// pre or suff
if (arrOfDigits.length === 5) {
if (arrOfDigits[1].length <= 2) {
console.log(`${arrOfDigits[1]} (${arrOfDigits[2]}) ${arrOfDigits[3]}-${arrOfDigits[4]}`)
} else {
console.log(`(${arrOfDigits[1]}) ${arrOfDigits[2]}-${arrOfDigits[3]} ${arrOfDigits[4]}`)
}
}
const rawPhoneNumber='1(626)423-3343 ex123'
常量模式=/(\d{1})([a-zA-Z\d]{3})([a-zA-Z\d]{3})([a-zA-Z\d]{4})(*))/
const matches=rawPhoneNumber.replace(/[\W\u]*/g',).match(模式);
让arrOfDigits=matches.filter((项,索引)=>item!=未定义);
arrOfDigits=arrOfDigits.filter((项,索引)=>item.length)
//简易电话
if(arrOfDigits.length==4){
log(`(${arrOfDigits[1]})${arrOfDigits[2]}-${arrOfDigits[3]}`)
}
//预调UFFIX
if(arrOfDigits.length==6){
console.log(`+${arrOfDigits[1]}(${arrOfDigits[2]})${arrOfDigits[3]}-${arrOfDigits[4]}${arrOfDigits[5]}`)
}
//前或后
如果(arrOfDigits.length==5){
if(arrOfDigits[1].length我为此创建了一个指令
我已经为此创建了一个指令