【问题标题】:How to replace multiple strings with replace() in Javascript如何在Javascript中用replace()替换多个字符串
【发布时间】:2010-11-19 19:07:22
【问题描述】:

我猜这是一个简单的问题,但我只是在学习......

我有这个:

var location = (jQuery.url.attr("host"))+(jQuery.url.attr("path"));
locationClean = location.replace('/',' ');

locationArray = locationClean.split(" ");

console.log(location);
console.log(locationClean);
console.log(locationArray);

这就是我在 Firebug 中得到的:

stormink.net/discussed/the-ideas-behind-my-redesign
stormink.net discussed/the-ideas-behind-my-redesign
["stormink.net", "discussed/the-ideas-behind-my-redesign"]

所以由于某种原因,替换只发生一次?我是否需要使用正则表达式而不是“/g”来使其重复?如果是这样,我将如何在正则表达式中指定一个“/”? (我对如何使用 Regex 了解甚少)。

谢谢大家。

【问题讨论】:

  • 该死!问完我就明白了……对不起大家!不会再发生...(希望如此)。
  • 然后回答你自己的问题。

标签: javascript jquery url replace split


【解决方案1】:

使用模式而不是字符串,您可以将其与“全局”修饰符一起使用

locationClean = location.replace(/\//g,' ');

【讨论】:

    【解决方案2】:

    您可以直接split 使用/ 字符作为分隔符:

    var loc =  location.host + location.pathname, // loc variable used for tesing
        locationArray = loc.split("/");
    

    【讨论】:

      【解决方案3】:

      replace 方法仅在您使用字符串作为第一个参数时替换第一次出现。您必须使用正则表达式来替换所有出现的情况:

      locationClean = location.replace(/\//g,' ');
      

      (由于斜线字符用于分隔正则表达式文字,因此您需要使用反斜杠转义表达式内的斜线。)

      不过,您为什么不只是拆分“/”字符呢?

      【讨论】:

        【解决方案4】:

        这可以通过您的 javascript 修复。

        语法

        stringObject.replace(findstring,newstring)
        

        查找字符串: 必需。指定要查找的字符串值。要执行全局搜索,请向此参数添加一个“g”标志并执行不区分大小写的搜索添加一个“i”标志。

        新字符串: 必需。指定要替换从 findstring 中找到的值的字符串

        你的代码如下所示:

        locationClean = location.replace(new RegExp('/','g'),' ');
        locationArray = locationClean.split(" ");
        

        njoi'

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-15
          • 2015-05-11
          • 2012-07-31
          • 2017-03-06
          • 1970-01-01
          • 2015-10-11
          相关资源
          最近更新 更多