如果有人能帮助我提出一个我可以在href中寻找模式的正则表达式,我将不胜感激。模式是查找查询字符串hint = value&然后用新值hint = value2&替换它。所以模式应该从提示开始,以&结束。如果有更多查询字符串或提示值的结尾。
我不想使用jquery外部库(purl)。任何帮助将不胜感激。
答案 0 :(得分:2)
您可以使用正向前瞻并检查&
或字符串的结尾。
hint=(.*?)(?=&|$)
由于我们使用前瞻,这意味着替换不需要在最后包含&
。如果hint=value
是最后一个查询元素,那么这可能是一个重要因素。
JavaScript中的内容如下:
const str = "https://www.sample.com/signup?es=click&hint=m%2A%2A%2A%2A%2A%2A%2Ai%40gmail.com&ru=%2F%22";
const replacement = "hint=newstring";
const regex = /hint=(.*?)(?=&|$)/g;
const result = str.replace(regex, replacement);
console.log(result);

根据您的示例网址,然后console.log(result)
将输出:
https://www.sample.com/signup?es=click&hint=newstring&ru=%2F%22
答案 1 :(得分:0)
<强>段:强>
function replaceValue(newValue, url) {
const regex = /\?.*?&((hint)=(.*)?&(.*))/g;
const matches = regex.exec(url);
let result = '';
matches.forEach((matchString , index) => {
if(index === 3) {
result += newValue;
}
else {
result += matchString;
}
});
return result;
}
这会对你有所帮助