繁体   English   中英

正则表达式用匹配长度 x 倍的字符替换数字

[英]Regex to replace digits with a character x times the match's length

让正则表达式(?<!a|\d)[0-9]{6,}匹配长度为 6 或更多的任何数字,但不以 \ 或数字开头。

以前,我在replace("[0-9]", "x")中使用了[0-9] ,它会将111替换为xxx

但是现在使用新公式replace("(?<!a|\d)[0-9]{6,}", "x")它只是替换为一个x

我怎样才能使它继续旧的行为? 我尝试使用一个函数,但它似乎效果不佳(使用使用奇怪 JS 语言的 Zoho 邮件)

使用函数作为替换。 然后它可以重复字符的次数与匹配的长度相同。

 console.log('123456'.replace(/(?<!a|\d)[0-9]{6,}/g, match => "x".repeat(match.length)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM