javascript - 如何使用 JavaScript 防止用户复制其 IP?

标签 javascript regex

在我的网站上,用户有一个事件日志,他可以访问该日志来查看他最近的操作。 在这些操作中,仅为用户显示 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/

相关文章:

javascript - 在 node.js 中的 for 循环后完成多个 writeFile 函数时解决 promise

javascript - 用于强调 Markdown 的正则表达式

regex - 带正则表达式的选择字符串,并拆分/输出到多个文件

regex - 从字符串中删除 '$' 个字符

java - 验证 UUID Restful 服务

javascript - 是否可以使用 Javascript 计算文件的 SHA1 ID?

javascript - OpenWhisk - socket.io - 客户端可能吗?

javascript - 如何在BootstrapVue的Carousel组件中自定义控件和指示器?

javascript - HTML 表单和 JavaScript 验证不起作用

Javascript正则表达式匹配不包含关键字