用javascript替换字符串中的多个匹配项

时间:2013-04-30 10:09:17

标签: javascript jquery string replace

我有一个选项框,参数作为选项中的值,设置如下:

<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

我错过了什么吗?

3 个答案:

答案 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, "=");