javascript - 在字符串中添加多个连续的整数

标签 javascript html regex

我有一些 javascript 代码可以创建一个包含字符和整数的变量。

我需要将此字符串中的连续整数相加,同时不影响其他单个或后续连续整数。

假设我的输入是

GhT111r1y11rt

我需要我的输出是:

GhT3r1y2rt

我该怎么做?

最佳答案

使用String#replace带有回调和内部回调的方法使用 String#split 计算总和和 Array#reduce方法。

console.log(
  'GhT111r1y11rt'.replace(/\d{2,}/g, function(m) { // get all digit combination, contains more than one digit
    return m.split('').reduce(function(sum, v) { // split into individual digit
      return sum + Number(v) // parse and add to sum
    }, 0) // set initial value as 0 (sum)
  })
)

\d{2,} 匹配 2 个或更多重复的数字,这比 \d+ 更好,因为我们不想替换单个数字。

关于javascript - 在字符串中添加多个连续的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42070190/

相关文章:

javascript - 如何用特定颜色填充整个 Canvas ?

javascript - 在 IntelliJ 或 WebStorm 中使用生成器调试 JS 的更好方法

html - cdn 文件的链接不适用于 html

html - 在导航栏内定位 div

regex - 否定字符类中的单引号

regex - 带正则表达式的 grep 作用域

javascript - VuetifyJS 工具栏在添加固定 Prop 后立即覆盖内容

python - Flask Error extending html with template : jinja2. exceptions.TemplateSyntaxError: 应为标签名称

regex - 正则表达式中的贪婪运算符在 Tcl 8.5 中不起作用

javascript - 正则表达式匹配所有 Vular 分数