javascript - 正则表达式 - 检测并替换字符串中两个以上的数字

标签 javascript regex

一旦字符串中的数字超过两位,我只想替换它们的数字。示例:

允许:

bla 22 bla bla

应该更换:

bla 234 bla 8493020348 bla

bla *** bla ********** bla

确切的数字并不重要 - 只需显示 1-2 位数字,如果多于 2 位,则应将其替换。

这是我已经尝试过的,但它总是替换整个字符串,而不仅仅是数字......此外,如果接受 2 位数字,稍后还有第三个数字,它也会被触发......

  var regex = /^(?:\D*\d){3}/g;
  str = str.replace(regex, "**");

所以这行不通:

bla 12 and so on 123

它将变成:

**

但我希望它是这样的:

bla 12 and so on ***

提前非常感谢您!!

最佳答案

一种解决方案是将回调函数传递给 String.prototype.replace()并使用String.prototype.repeat()输入正确数量的星号:

string = string.replace(/\d{3,}/g, (v) => '*'.repeat(v.length));

完整片段:

const string =  'bla 22 bla 234 bla 8493020348 bla';

const result = string.replace(/\d{3,}/g, (v) => '*'.repeat(v.length));

console.log(result); // "bla 22 bla *** bla ********** bla"

关于javascript - 正则表达式 - 检测并替换字符串中两个以上的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52884594/

相关文章:

javascript - 在 Maven 生命周期中运行 JavaScript 文件

php - preg_match_all `u` 标志依赖于什么?

regex - 使用正则表达式分隔所需数据时遇到问题

javascript - 允许正则表达式以句点或减号开头

javascript - 如何使用谷歌脚本创建子菜单

javascript - 将 Magicline 与 Flexslider 结合使用

php - 无法使用 Jquery $().attr 获取循环 PHP 变量的 attr

python - 在 Python 中使用正则表达式从苹果商店 html 中提取应用程序的描述

regex - 查找仅由特定字符集组成的字符串

javascript - 数组文字作为对象键?