我有一个选项框,参数作为选项中的值,设置如下:
<option value="{$i.tileid}androoftiletypeeq{$i.model}andproducenteq{$i.producent}">{$i.name} {$i.$title}</option>
我正在尝试将所有“和”和“eq”替换为“&amp;”和“=”,但我只能得到我的javascript替换第一次出现。表单名为/ ID'ed“rooftile_select
$("#rooftile_select").change(function(event) {
event.preventDefault();
var data = $("#rooftile_select").serialize();
var pathname = window.location;
var finalurl = pathname+'&'+data;
var replaced = finalurl.replace("and", "&").replace("eq", "=");
});
finalurl中的最后一个参数如下所示:
&rid=56&rooftiletype=9andproducenteqs
我错过了什么吗?
答案 0 :(得分:30)
var replaced = finalurl.replace(/and/g, '&').replace(/eq/g, '=');
这应该可以解决问题。 g
之后的/
表示您要替换所有出现的内容。
答案 1 :(得分:0)
您可以将regexp与全球标志
一起使用var finalurl = '{$i.tileid}androoftiletypeeq{$i.model}andproducenteq{$i.producent}';
finalurl.replace(/and/g, "&").replace(/eq/g, "=")
如果您的字符串总是包含{...}
个变量,您可以使用以下内容来避免意外替换变量或请求参数名称
finalurl.replace(/\}and/g, "}&").replace(/eq\{/g, "={")
答案 2 :(得分:0)
试试这个:
replaced = finalurl.replace(/and/g, "&").replace(/eq/g, "=");