使用正则表达式 Javascript 查找子字符串

如果我有这个,我怎么能找到特定标签的特定URL,是否可以获得特定的URL?categoryIdListscripts


const categoryIdList = ["#travel", "#lifestyle", "#fnb", "#gadget_entertainment", "#dailyneeds", "#others_promo"]


const scripts = `$(document).ready(function(){


        $("#travel").click(function(){                           

                  $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=1");

        });


        $("#lifestyle").click(function(){                                

                  $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=2");

        });


        $("#fnb").click(function(){                              

                  $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=3");

        });


        $("#gadget_entertainment").click(function(){                             

                  $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=4");

        });


        $("#dailyneeds").click(function(){                               

                  $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=5");

        });


        $("#others_promo").click(function(){                             

                  $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=6");

        });


        $("#kartukredit").click(function(){                              

                  $("#contentpromolain2").load("ajax.promolainnya.php?product=1");

        });


        $("#simpanan").click(function(){                                 

                  $("#contentpromolain2").load("ajax.promolainnya.php?product=2");

        });


        $("#others").click(function(){                           

                  $("#contentpromolain2").load("ajax.promolainnya.php?product=3");

        });


        $("#ebanking").click(function(){                                 

                  $("#contentpromolain2").load("ajax.promolainnya.php?product=4");

        });


如何使用正则表达式获得该结果?或者JavaScript中的任何方法


烙印99
浏览 91回答 2
2回答

慕森卡

需要注意的是,这是一种非常脆弱的方法,并且依赖于&nbsp;.load&nbsp;方法中#id到 uri 的 1:1 映射,因此可以帮助您的正则表达式依赖于捕获组,并且可能如下所示:/\$\(\"#.*\"\)\.click|\.load\(\".*\"\);/g在此处查看其功能的细分:https://regex101.com/r/hD0zR5/7您可以在脚本中使用该正则表达式将一组匹配项转换为数组,其中每 2 个数组项是键/值对。只要你能保证这是真的(每个2个数组项都是一个键/值对),你就可以遍历数组并创建你要查找的对象。由于您已经拥有,因此如果需要,可以在创建对象时使用这些值来验证键。categoryIdListconst scripts = `$(document).ready(function(){&nbsp; &nbsp; &nbsp; &nbsp; $("#travel").click(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=1");&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; $("#lifestyle").click(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=2");&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; $("#fnb").click(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=3");&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; $("#gadget_entertainment").click(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=4");&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; $("#dailyneeds").click(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=5");&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; $("#others_promo").click(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#contentpromolain2").load("ajax.promolainnya.php?product=0&subcat=6");&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; $("#kartukredit").click(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#contentpromolain2").load("ajax.promolainnya.php?product=1");&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; $("#simpanan").click(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#contentpromolain2").load("ajax.promolainnya.php?product=2");&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; $("#others").click(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#contentpromolain2").load("ajax.promolainnya.php?product=3");&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; $("#ebanking").click(function(){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $("#contentpromolain2").load("ajax.promolainnya.php?product=4");&nbsp; &nbsp; &nbsp; &nbsp; });});`const urls = {}const matches = [...scripts.matchAll(/\$\(\"(#.*)\"\)\.click|\.load\(\"(.*)\"\);/g)]for (let i = 0;i < matches.length;i += 2) {&nbsp; urls[matches[i][1]] = matches[i + 1][2]}console.log(urls)

HUH函数

我认为您通常正在寻找的是此正则表达式:(https://regex101.com/r/jY8NBp/1"(.*?)")这将使您在引号之间获得每个位,然后在创建对象时可以忽略中间的引号。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript