javascript - 在 javascript 字符串中查找 IP 地址
问题描述
我想扫描 IP 地址的消息/字符串,我设法让它检查整个事情是否匹配,但我无法检查它是否包含 IP
这是我尝试过的
let ipRegex = /^(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]?)$/;
if(message.content.match(ipRegex)) {
client.sql.query(`SELECT autoDelIPs, modlog FROM guildconfig WHERE guildID = ?`, [message.guild.id], async function (error, results, fields) {
if(results[0].autoDelIPs === 1) {
if(results[0].modlog !== "0" || results[0].modlog !== "000000000000000000") {
let logemb = new Discord.MessageEmbed().setTitle("IP Detected").addField("User", message.author.tag, true).addField("Sent", message.content, true).addField("In", "<#" + message.channel.id + ">", true).setColor("RED").addField("Action Taken", "Message deleted", true)
message.guild.channels.cache.get(results[0].modlog).send(logemb)
message.delete()
message.channel.send("An IP was detected to be sent by " + message.author.tag + " and was deleted, a log has been sent into the modlog channel!")
} else {
message.delete()
message.channel.send("An IP was detected to be sent by " + message.author.tag + " and was deleted, no log has been made as a modlog was not set!")
}
}
})
}
在此处使用此代码是一些输出示例:
消息:看看我的 ip 1.1.1.1 lol
输出:什么都没有发生
消息:8.8.8.8
输出:检测到要发送的 IP
我曾尝试为自己寻找答案,但找不到任何答案,我知道这可能是一个愚蠢的问题,但我找不到任何问题的答案
解决方案
在正则表达式中^
,$
表示行的开始和结束。因此,如果 IP 是消息中的唯一内容,您的表达式只会捕获 IP。
删除它们,它将按预期工作。
我建议使用您的正则表达式 o RegExr,因为它有一个解释有效负载的工具。
推荐阅读
- spring-boot - 使用 statsd datadog 的千分尺错误 SLO 直方图计数
- vb.net - 如何根据点击更改标签的文本
- c# - MEF 接口 - 我可以有可选的空隙吗?
- c - 在 O(h) 时间复杂度内将二叉搜索树一分为二
- flutter - 有没有办法将多个颤振应用程序合并到单个应用程序中?
- prolog - 计算规则被声明的次数 - SWIProlog
- optimization - 根据购买量最小化成本 Pyomo
- flutter - 卡片上的颤动 griview
- python - 从数据帧创建 csv 时,如何在将原始图像数据集转换为 csv 时使 pd.DataFrame() 更快?
- ruby-on-rails - “bundle exec rake db:create”命令抛出错误信息,不允许操作