我有一個設計不佳的URL查詢字符串,我不能輕易更改,例如拆分術語上的字符串,然後拆分另一術語
我需要例如從中提取元件45628
目前我使用
document.URL.split(/aff=|_/)[5];
但我不喜歡這樣的解決方案,因爲如果URL結構變化,這是非常有可能的其他部分,然後我的解決方案將打破
相反我想說的是對 「AFF =」
分裂,然後分裂的 「_」
有一個簡單的方法來做到這一點,找JS回答
我有一個設計不佳的URL查詢字符串,我不能輕易更改,例如拆分術語上的字符串,然後拆分另一術語
我需要例如從中提取元件45628
目前我使用
document.URL.split(/aff=|_/)[5];
但我不喜歡這樣的解決方案,因爲如果URL結構變化,這是非常有可能的其他部分,然後我的解決方案將打破
相反我想說的是對 「AFF =」
分裂,然後分裂的 「_」
有一個簡單的方法來做到這一點,找JS回答
敢肯定你能做到這一點是這樣的:
document.URL.split("aff=")[1].split("_")[0];
我會通過分割字符串成令牌,如果能啓動。將其分解爲[['foo', 'bar'], ['fin', 'bin]]
,而不是與foo=bar&fin=bin
一起使用。您可以在&
,然後做到這一點的分裂分裂每個那些對=
性格:
const data = 'source=999&promotype=promo&cmpid=abc--dfg--hif-_-1234&cm=qrs-stv-_wyx&aff=45628_THIS+IS+Test_Example';
console.log(data.split('&').map(it => it.split('=')));
接下來,把你想要的標記並提取領先的數字:
const data = 'source=999&promotype=promo&cmpid=abc--dfg--hif-_-1234&cm=qrs-stv-_wyx&aff=45628_THIS+IS+Test_Example';
const tokens = data.split('&').map(it => it.split('='));
const [key,val] = tokens.find(([key]) => key === 'aff');
console.log(key, val.match(/[0-9]+/));
var re = new RegExp(/ aff =(\ d +)/); var ext = re.exec(url)[1]; 提醒(分機)