我猜这是一个简单的问题,但我只是在学习......
我有这个:
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中指定'/'? (我对如何使用正则表达式知之甚少。)
谢谢大家。
答案 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'