在我的网站上,用户有一个事件日志,他可以访问该日志来查看他最近的操作。 在这些操作中,仅为用户显示 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/
感谢任何帮助。
最佳答案
如果您不担心与 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/
关于javascript - 如何使用 JavaScript 防止用户复制其 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61032434/