2 回答

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
需要注意的是,這是一種非常脆弱的方法,并且依賴于 .load
方法中#id
到 uri 的 1:1 映射,因此可以幫助您的正則表達(dá)式依賴于捕獲組,并且可能如下所示:
/\$\(\"#.*\"\)\.click|\.load\(\".*\"\);/g
在此處查看其功能的細(xì)分:https://regex101.com/r/hD0zR5/7
您可以在腳本中使用該正則表達(dá)式將一組匹配項(xiàng)轉(zhuǎn)換為數(shù)組,其中每 2 個(gè)數(shù)組項(xiàng)是鍵/值對。
只要你能保證這是真的(每個(gè)2個(gè)數(shù)組項(xiàng)都是一個(gè)鍵/值對),你就可以遍歷數(shù)組并創(chuàng)建你要查找的對象。
由于您已經(jīng)擁有,因此如果需要,可以在創(chuàng)建對象時(shí)使用這些值來驗(yàn)證鍵。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)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
我認(rèn)為您通常正在尋找的是此正則表達(dá)式:(https://regex101.com/r/jY8NBp/1"(.*?)"
)
這將使您在引號(hào)之間獲得每個(gè)位,然后在創(chuàng)建對象時(shí)可以忽略中間的引號(hào)。
添加回答
舉報(bào)