亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用正則表達式 Javascript 查找子字符串

使用正則表達式 Javascript 查找子字符串

烙印99 2022-09-02 21:17:41
如果我有這個,我怎么能找到特定標簽的特定URL,是否可以獲得特定的URL?categoryIdListscriptsconst 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中的任何方法
查看完整描述

2 回答

?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

需要注意的是,這是一種非常脆弱的方法,并且依賴于 .load 方法中#id到 uri 的 1:1 映射,因此可以幫助您的正則表達式依賴于捕獲組,并且可能如下所示:

/\$\(\"#.*\"\)\.click|\.load\(\".*\"\);/g

在此處查看其功能的細分:https://regex101.com/r/hD0zR5/7

您可以在腳本中使用該正則表達式將一組匹配項轉換為數組,其中每 2 個數組項是鍵/值對。

只要你能保證這是真的(每個2個數組項都是一個鍵/值對),你就可以遍歷數組并創建你要查找的對象。

由于您已經擁有,因此如果需要,可以在創建對象時使用這些值來驗證鍵。categoryIdList

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");

        });

});`



const urls = {}

const matches = [...scripts.matchAll(/\$\(\"(#.*)\"\)\.click|\.load\(\"(.*)\"\);/g)]


for (let i = 0;i < matches.length;i += 2) {

  urls[matches[i][1]] = matches[i + 1][2]

}


console.log(urls)


查看完整回答
反對 回復 2022-09-02
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

我認為您通常正在尋找的是此正則表達式:(https://regex101.com/r/jY8NBp/1"(.*?)")

這將使您在引號之間獲得每個位,然后在創建對象時可以忽略中間的引號。


查看完整回答
反對 回復 2022-09-02
  • 2 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號