我正在尝试在数字中插入“-”。我想在第3个和第7个字母之后插入它。
例如编号:123456789
所需数量:123- 4567-89
到目前为止我尝试过的是:
if (!Number.isNaN(value)) {
val = value.match(/\d{3}(?=\d{2,3})|\d+/g).join('-');
}
这使我在每第三次出现后就得到结果“-”,而不是必需的结果。 123-456-789]。某些正则表达式专家可以帮忙吗?
答案 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-")
);