如何用Javascript中的replace()替换多个字符串

时间:2009-08-14 21:08:36

标签: javascript jquery url replace split

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

我有这个:

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中指定'/'? (我对如何使用正则表达式知之甚少。)

谢谢大家。

4 个答案:

答案 0 :(得分:5)

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

一起使用
locationClean = location.replace(/\//g,' ');

答案 1 :(得分:3)

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

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

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

但是,为什么你不只是拆分'/'字符呢?

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

这可以通过您的javascript修复。

<强>语法

stringObject.replace(findstring,newstring)
  

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

     

newstring:必填。指定要从findstring

替换找到的值的字符串

这是你的代码shud的样子:

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

njoi'