正则表达式javascript寻找具有开始和结束模式的字符串

时间:2017-04-02 05:02:53

标签: javascript jquery regex

如果有人能帮助我提出一个我可以在href中寻找模式的正则表达式,我将不胜感激。模式是查找查询字符串hint = value&然后用新值hint = value2&替换它。所以模式应该从提示开始,以&结束。如果有更多查询字符串或提示值的结尾。

我不想使用jquery外部库(purl)。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以使用正向前瞻并检查&或字符串的结尾。

hint=(.*?)(?=&|$)

Live preview

由于我们使用前瞻,这意味着替换不需要在最后包含&。如果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;
}

这会对你有所帮助