在我的网站上,一个用户有一个活动日志,他可以访问这个日志来查看他最近的行为。在这些操作中,只为用户显示IP,例如:
2020-04-04-09:59:02 Action X 192.168.1.251 You did Action X bla bla bla当然,IP通常是客户端的外部IP。
我想做的是,当用户复制他的活动日志时,屏蔽/隐藏ip,这样他就不会错误地将它显示给其他人。
我试过的是下一个:
document.addEventListener('copy', function(t) {
var e = window
.getSelection()
.toString()
.replace(
/((0|1[0-9]{0,2}|2[0-9]?|2[0-4][0-9]|25[0-2.0-98*-5]|[3-9][0-9]?)\.){3}(0|1[0-9]{0,2}|2[0-9]?|2[0-4][0-9]|25[0-5]|[3-9][0-9]?)/g,
'',
);
t.clipboardData.setData('text/plain', e), t.preventDefault();
});当我试图复制文本并粘贴到这里时,我得到:
2020-04-04-09:59:02 Action X 1 You did Action X bla bla bla代码几乎可以工作,但我一直得到这个1。我还没找到解决办法。
JSFiddle:https://jsfiddle.net/aoq1k9nu/
任何帮助都是非常感谢的。
发布于 2020-04-04 18:10:50
如果您不担心类似于ipv4地址的其他事情,则可以简化正则表达式:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
或者如果你想从https://www.regular-expressions.info/ip.html那里更加小心的话
/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/https://stackoverflow.com/questions/61032434
复制相似问题