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

时间:2018-09-17 07:17:34

标签: javascript regex

我正在尝试在数字中插入“-”。我想在第3个和第7个字母之后插入它。

例如编号:123456789
所需数量:123- 4567-89

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

if (!Number.isNaN(value)) {
  val = value.match(/\d{3}(?=\d{2,3})|\d+/g).join('-');
}

这使我在每第三次出现后就得到结果“-”,而不是必需的结果。 123-456-789]。某些正则表达式专家可以帮忙吗?

1 个答案:

答案 0 :(得分:5)

使用

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

请参见regex demo

详细信息

  • ^-字符串的开头
  • (\d{3})-Capturing group 1:三位数
  • (\d{4})-捕获第2组:四位数

$1代表第1组值(前3位数字),$2代表第2组值(后4位数字)。

JS演示:

console.log(
  "123456789".replace(/^(\d{3})(\d{4})/, "$1-$2-") 
);