Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式呈现格式化的电话号码_Javascript_Regex_Angular - Fatal编程技术网

Javascript 使用正则表达式呈现格式化的电话号码

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})?

我正在用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})?([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我为此创建了一个指令


我已经为此创建了一个指令