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

Lea*_*ner 3 javascript regex

我想在一个数字中插入' - '.我想在第3和第7封信之后插入.

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

到目前为止我尝试了什么:

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

这给了我每三次出现后的结果' - '而不是所需的结果[即123-456-789].一些正则表达式专家可以帮助这个吗?

Wik*_*żew 5

使用

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

请参阅正则表达式演示

细节

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

$1代表组1的值(第一3位数字)和$2为第2组值代表(在接下来的4位数字).

JS演示:

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

  • 这就像一个魅力,解释非常清楚.谢谢! (2认同)