【问题标题】:Replace number with number and special characters [duplicate]用数字和特殊字符替换数字[重复]
【发布时间】:2025-11-26 14:55:02
【问题描述】:

我想用字符串中的特殊字符和数字替换数字。

例如“3 6 8 47”,预期输出为“$3 $6 $8 $47”。

我可以使用replace方法并实现如下:

var content = "1 3 4";
content = content.replace(/1/g, " $1 ");
console.log(content); // $1 3 4

在这里,我只能替换一个数字,我确实想为每个数字写。

或者我可以使用 split 方法并将 $ 添加到数组的每个项目并加入。

我正在寻找一些通用的替换方法来实现这一点。

【问题讨论】:

标签: javascript regex replace


【解决方案1】:

您可以使用\d+ 匹配一位或多位数字。在替换部分内部,$& 将引用匹配的字符串。由于$在正则表达式替换部分有特殊含义,要将$显示为文字,您需要使用$$

.replace(/\d+/g, '$$$&')

console.log('1 2 3'.replace(/\d+/g, '$$$&'));

More info on MDN

【讨论】:

  • 感谢您的快速回复。但是输入可以是任意长度。如何解决?
  • 它适用于任何长度的输入
  • @RanjitKumar 正则表达式已经涵盖了任何长度的数字(除了零)?
  • 我明白了..太棒了..谢谢大家..
【解决方案2】:

作为替代方案,您可以根据需要使用replace 函数的回调。它将为您提供更多修改匹配字符串的规定。

let replaced = "3 6 8 47".replace(/\d+/g, (str) => ("$" + str));

【讨论】: