Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复杂的JavaScript字符串删除/替换_Javascript_Regex_Query String - Fatal编程技术网

复杂的JavaScript字符串删除/替换

复杂的JavaScript字符串删除/替换,javascript,regex,query-string,Javascript,Regex,Query String,我有一个查询字符串,需要从中删除某个参数。例如,我的查询字符串可能是?name=John&page=12&mfgid=320,我需要从中删除page参数,最后得到?name=John&mfgid=320。我不能假设页面参数后面有或没有其他参数 我所有使用JavaScript函数/正则表达式的尝试都失败得很惨,所以我真的可以帮上忙。谢谢。那很容易。。。只是/page=\d+&/ 您可以使用: uri = uri.replace(/[?&]page=[^&\n]+$|([&?

我有一个查询字符串,需要从中删除某个参数。例如,我的查询字符串可能是?name=John&page=12&mfgid=320,我需要从中删除page参数,最后得到?name=John&mfgid=320。我不能假设页面参数后面有或没有其他参数


我所有使用JavaScript函数/正则表达式的尝试都失败得很惨,所以我真的可以帮上忙。谢谢。

那很容易。。。只是/page=\d+&/

您可以使用:

uri = uri.replace(/[?&]page=[^&\n]+$|([&?])page=[^&\n]+&/g, '$1');

我们需要使用alternation来覆盖所有存在查询参数的情况。查看我的演示,查看所有测试用例。

也许你可以分享你以前的尝试,这样我们就不会重复你的努力了。用你失败的尝试来逗乐我们。也许你应该使用一个知道如何解析和构建查询字符串的库。替换/[?&]page=.*?&|$/,“$1”足够简单:D@NiettheDarkAbsol如果?page=。。。是第一个参数。现在您有了一个没有前导的查询字符串?var uri='?name=John&otherpage=abc&mfgid=210';哦,天哪,我没有任何其他参数里面有单词page。如果我这样做的话,我会把这作为一项要求。所以,@Reeno的回答起了作用。
uri = uri.replace(/[?&]page=[^&\n]+$|([&?])page=[^&\n]+&/g, '$1');