为了账号安全,请及时绑定邮箱和手机立即绑定

无法遍历字符串以查找正则表达式模式编号

无法遍历字符串以查找正则表达式模式编号

繁花如伊 2021-12-12 18:04:14
我正在尝试制作一个应用程序,其中客户端将在 textarea 中搜索一些字符串,并且该字符串将被循环以查找 IP 地址。如果它找到一个 IP,那么它将获取它的值并在 API 中使用它来请求更多数据。客户端搜索的字符串将始终具有 IP。但我没有得到一个IP。这是代码:HTML<div class="row">        <div class="col-sm-12 mb-5">                <form action="/finder" method="GET" id="ipForm">                        <textarea type="text" name="header" id="form-input" class="form-control form-input form-inline justify-content-center" required></textarea>                        <input type="submit" class="btn btn-primary" id="form-submit" value="CHECK">                </form>        </div></div>路由器router.get("/finder", (req, res) => {    if(req.query.header) {        var query = req.query.header;        var rawQuery = query.split("\n");        for(var i = 0; i < rawQuery.length; i++) {            var ip = /Received:\s+from.*?\[((?:[0-9]{1,3}\.){3}[0-9]{1,3})\]/i.exec(rawQuery[i]);            if(ip !== null) {                var url = "https://api.ipregistry.co/" + ip;                request(url, function(error, response, body) {                    if(!error && response.statusCode === 200) {                        const data = JSON.parse(body);                        res.render("../views/finder", {data: data});                    }                       });            }else{                // var data = "Unable to retrieve data.";                // res.render("../views/finder", {data: data});                console.log("no ip found");            }        }    }else{        res.render("../views/finder", {data: null});    }});
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

这种模式(?:[0-9]{1,3}\.){3}[0-9]{1,3}肯定会返回一个 IP。如果您期望多个 Ips,您可能只想使用/(?:[0-9]{1,3}\.){3}[0-9]{1,3}/g而不是/(?:[0-9]{1,3}\.){3}[0-9]{1,3}/i全局搜索而不是循环遍历句子。

在您的问题中,您正在添加额外的正则表达式来搜索“从 IP_ADDRESS 接收”,并且这些额外的文本也必须匹配。尝试在没有它的情况下匹配 IP。


查看完整回答
反对 回复 2021-12-12
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

我尝试使用您的数据以及您尝试从数据中提取 ip 的方式。这是它的屏幕截图。因此,您的正则表达式似乎返回一个数组。尝试console.logip变量,并检查它包含什么。在我的实验中,要访问 IP 地址,我必须这样做ip[1]


//img1.sycdn.imooc.com//61b5c9490001b99c12390380.jpg

查看完整回答
反对 回复 2021-12-12
  • 2 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信