Javascript 用于插入的正则表达式-在数字中的特定索引之后

Javascript 用于插入的正则表达式-在数字中的特定索引之后,javascript,regex,Javascript,Regex,我试图在数字中插入“-”。我想在第三个和第七个字母后插入这个 例如,编号:123456789 所需号码:123-4567-89 到目前为止,我尝试的是: if (!Number.isNaN(value)) { val = value.match(/\d{3}(?=\d{2,3})|\d+/g).join('-'); } 这会在每三次出现后给出结果“-”,而不是所需的结果[即123-456-789]。一些正则表达式专家能帮上忙吗?使用 val = value.replace(/^(\d{3}

我试图在数字中插入“-”。我想在第三个和第七个字母后插入这个

例如,编号:123456789
所需号码:123-4567-89

到目前为止,我尝试的是:

if (!Number.isNaN(value)) {
  val = value.match(/\d{3}(?=\d{2,3})|\d+/g).join('-');
}
这会在每三次出现后给出结果“-”,而不是所需的结果[即123-456-789]。一些正则表达式专家能帮上忙吗?

使用

val = value.replace(/^(\d{3})(\d{4})/, "$1-$2-")

详细信息

  • ^
    -字符串的开头
  • (\d{3})
    -1:三位数字
  • (\d{4})
    -捕获组2:四位数字
表示第1组值(前3位),而
$2
表示第2组值(后4位)

JS演示:

console.log(
“123456789”。替换(/^(\d{3})(\d{4})/,“$1-$2-”)

);这就像一个魅力,解释非常清楚。非常感谢。