1

我处理查询字符串并使用其他分隔符或分隔符。现在我有兴趣删除。

我阅读了Delete parameter问题,并使用了 LukePH 的脚本编写。

    function removeParameter(url, parameter)
{
  var urlparts= url.split('?');

  if (urlparts.length>=2)
  {
      var urlBase=urlparts.shift(); //get first part, and remove from array
      var queryString=urlparts.join("?"); //join it back up

      var prefix = encodeURIComponent(parameter)+'=';
      var pars = queryString.split(/[&;]/g);
      for (var i= pars.length; i-->0;)               //reverse iteration as may be destructive
          if (pars[i].lastIndexOf(prefix, 0)!==-1)   //idiom for string.startsWith
              pars.splice(i, 1);
      url = urlBase+'?'+pars.join('&');
  }
  return url;
}

分隔符是:

            Separator


javascript              Mako           

  =                       %24+
  &                       +%23+

在这个脚本中有

var pars = queryString.split(/[&;]/g);

我想更改句子以在分隔符上使用 split+%23+

var pars = queryString.split(/[+%23+;]/g);

这不起作用,因为包含太多值。

如何将定位的正则表达式更改为字符串?

4

1 回答 1

1

方括号定义了一个字符类,就像在一组潜在的匹配中一样,因此将两个相同的字符放在一个字符类中是没有意义的。你需要做的是逃避你的特殊字符......

var pars = queryString.split(/\+%23\+;/g);
于 2013-04-28T18:47:54.220 回答