![](/img/trans.png)
[英]How to count or replace all matching words between { } or [ ] in javascript with regex?
[英]How to regex replace a query string with matching 2 words?
我有一個 url,我想替換查詢字符串。 例如
www.test.com/is/images/383773?wid=200&hei=200
我想匹配wid=
和hei=
並且數字不必是200
來替換整個東西,所以它應該看起來像這樣。
預計www.test.com/is/images/383773?@HT_dtImage
所以我試過做,但它只替換了匹配的wei
和hei
。
const url = "www.test.com/is/images/383773?wid=200&hei=200"
url.replace(/(wid)(hei)_[^\&]+/, "@HT_dtImage")
我會在這里使用字符串拆分:
var url = "www.test.com/is/images/383773?wid=200&hei=200"; var output = url.split("?")[0] + "?@HT_dtImage"; console.log(output);
如果您只想定位同時具有鍵wid
和hei
的查詢字符串,則使用正則表達式方法:
var url = "www.test.com/is/images/383773?wid=200&hei=200"; var output = url.replace(/(.*)\?(?=.*\bwid=\d+)(?=.*\bhei=\d+).*/, "$1?@HT_dtImage"); console.log(output);
您可以匹配 wid= 或 hei= 直到下一個可選的&符號,然后刪除這些匹配項,然后 append @HT_dtImage
到結果。
\b(?:wid|hei)=[^&]*&?
模式匹配:
\b
防止部分單詞匹配的單詞邊界(?:wid|hei)=
非捕獲組,匹配wid
或hei
后跟=
[^&]*&?
匹配除&
以外的字符 0+ 次,然后匹配可選的&
查看正則表達式演示。
let url = "www.test.com/is/images/383773?wid=200&hei=200" url = url.replace(/\b(?:wid|hei)=[^&]*&?/g, "") + "@HT_dtImage"; console.log(url)
試試url.replace(/\?.*/, "?@HT_dtImage")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.