只有很少的Regex经验,我试图在node.js中实现一些电子邮件屏蔽,所有这些在本地都运行良好,但是一旦推送到服务器,我将收到无效的Regex错误。
可在此处找到正则表达式代码示例
var email = 'foo@bar.com'
const regex = /(.)[^@\n](?=[^@\n]*[^@\n]@)|(?:(@.)|(?!^)\G(?=[^@]*$)).(?!$)/g;
const maskedEmail = email.replace(regex, '*');
maskedEmail应该返回
f*o@b*r.com
我已经将问题缩小为“后向/向前看”,据我所知,它在JS中不可用。但是我不知道如何最好地重写它。
答案 0 :(得分:1)
您可以将其捕获为多个组,然后用$1
,$2
等替换该数据。
通过使用此正则表达式:^(.).*(.@.).*(.\.[^\.]+)$
并使用以下替换字符串:$1*$2*$3
它将导致:f*o@b*r.com
链接到我的小提琴:https://regexr.com/42um8