Javascript Regex:掩码最后50%的字符串

时间:2018-02-20 00:57:32

标签: javascript regex

假设我有一个字符串

var unmasked = 'AwesomeFatGorilla'

我想要做的是从最后掩盖字符串的50%+。

var masked = unmasked.replace( //REGEX//, '•')

更换后,屏蔽的字符串应如下所示:

AwesomeF•••••••••

由于我的未屏蔽字符串中有17个字母,因此最后9个字母被屏蔽。有没有适用于此的正则表达式?

2 个答案:

答案 0 :(得分:3)

这是一个简单的替代方案,没有正则表达式:



var unmasked = 'AwesomeFatGorilla'
var masked = unmasked.slice(0, Math.floor(unmasked.length) / 2) + "•".repeat(Math.ceil(unmasked.length / 2));
console.log(masked)




您必须调整奇数长度的数学感谢下面的Rhyono comment,我使用Math.floor()Math.ceil()来获取您的行为想要奇怪的长度。

答案 1 :(得分:1)

使用正则表达式.(?!.{n})



var unmasked = 'AwesomeFatGorilla'
var num = Math.ceil(unmasked.length / 2)
console.log(unmasked.replace(new RegExp(".(?!.{" + num + "})", "g"), "•"))