Javascript 如果没有';t a'';在牢房里?
我使用以下正则表达式将字符串的整个querystring替换为新的:Javascript 如果没有';t a'';在牢房里?,javascript,regex,Javascript,Regex,我使用以下正则表达式将字符串的整个querystring替换为新的: "http://www.google.com?bar=1".replace(/\?.*/, "?foo=2") 仅当存在查询字符串时,此选项才有效。以下操作将不起作用: "http://www.google.com".replace(/\?.*/, "?foo=2") 如何使正则表达式匹配这两种情况?正则表达式对我没有用处。检查是否有?-如果没有附加查询字符串,则先删除旧的查询字符串。接吻 正则表达式对我来说没有用。检查是
"http://www.google.com?bar=1".replace(/\?.*/, "?foo=2")
仅当存在查询字符串时,此选项才有效。以下操作将不起作用:
"http://www.google.com".replace(/\?.*/, "?foo=2")
如何使正则表达式匹配这两种情况?正则表达式对我没有用处。检查是否有
?
-如果没有附加查询字符串,则先删除旧的查询字符串。接吻 正则表达式对我来说没有用。检查是否有?
-如果没有附加查询字符串,则先删除旧的查询字符串。接吻 这应该行得通,但我不确定您到底想做什么,我记不起javascript中正则表达式的语法,所以replacestring是python语法的,但它应该给您一个想法。。当您执行“\?”时,您正在匹配一个被删除的“?”,因此它不会匹配第二个,因为字符串中没有“?”
/(.*?google.com)(.*?)/
replacestring = '\\1'+'?foo=2'
这应该行得通,但我不确定您到底想做什么,我记不起javascript中正则表达式的语法,所以replacestring是python语法的,但它应该会告诉您这个想法。。当您执行“\?”时,您正在匹配一个被删除的“?”,因此它不会匹配第二个,因为字符串中没有“?”
/(.*?google.com)(.*?)/
replacestring = '\\1'+'?foo=2'
说出或结束字符串:
说出或结束字符串:
避免在JS中操纵URL的字符串/正则表达式黑客攻击。每个浏览器都内置了一个非常好的URL解析器,您可以从任何链接元素访问它:
var a= document.createElement('a');
a.href= 'http://www.google.com/?bar=1';
a.search= '?foo=2';
alert(a.href); // http://www.google.com/?foo=2
避免在JS中操纵URL的字符串/正则表达式黑客攻击。每个浏览器都内置了一个非常好的URL解析器,您可以从任何链接元素访问它:
var a= document.createElement('a');
a.href= 'http://www.google.com/?bar=1';
a.search= '?foo=2';
alert(a.href); // http://www.google.com/?foo=2
捕获主机并用所需的查询字符串替换所有其他内容
url.replace(/([^?]+).*/, "$1?querystring");
捕获主机并用所需的查询字符串替换所有其他内容
url.replace(/([^?]+).*/, "$1?querystring");
这不会返回有效的结果。您需要更改javascript的语法,我不使用js正则表达式,但在所有语言中都是相同的,只是语法不同,正则表达式中的每个“()”都是要替换的区域,我的替换字符串是:“保持第一个()不变”并将第二个“()”替换为“?foo=2”。。。很抱歉,我无法提供更多的帮助来给出确切的语法,我只是现在没有时间研究它。我试图做的是,如果一个查询字符串不存在,则附加一个查询字符串,如果存在,则替换它。这似乎无法实现。这不会返回有效的结果。您需要更改javascript的语法,我不使用js正则表达式,但在所有语言中都是相同的,只是语法不同,正则表达式中的每个“()”都是要替换的一个区域,我的替换字符串是:“保持第一个()相同”,用“?foo=2”替换第二个“()”。。。很抱歉,我无法提供更多的帮助来给出确切的语法,我只是现在没有时间研究它。我试图做的是,如果一个查询字符串不存在,则附加一个查询字符串,如果存在,则替换它。这似乎没有达到目的。这是完美的,正是我想要的。在我看来,这比检查字符串是否有问号,然后在上面运行正则表达式要简单得多。这非常完美,也正是我想要的。在我看来,这比检查字符串中的问号然后在其上运行正则表达式要简单得多。