繁体   English   中英

JavaScript String.Replace不起作用?

[英]Javascript String.Replace doesnt work?

我目前正在尝试为正在创建的网站创建导航系统。 我花了数小时试图弄清楚这一点,但是我不明白为什么它不起作用,我试图用变量文件名替换所有出现的“ index.html”。

function changeSideNav(filenames)
{   
    var urlarray = window.location.href.split("?");
    var url = urlarray[0];
    alert(url); // This returns "http://localhost/xxx/index.html"
    var urlspl = url.replace(/index.html/gi,filenames);
    alert(url.replace(/index.html/i,filenames) +'/'+ filenames); //This returns "http://localhost/xxx/index.html/newpage.html" (if pram was newpage.html).
    //i txpected it to return "http://localhost/xxx//newpage.html"
    //set a new source
    document.getElementById('SideNavIframe').src = urlspl +'/'+ filenames;
}

编辑:我发现这很奇怪:如果我尝试替换“ /index.html”而不是“ index.html”,它将从输出中删除“ /”,因此我得到“ http://localhost/xxxindex.html” /newpage.html”。

不知道这是否是您的概率。 但是我在这个问题上停留了一个小时。

这里是:
str.replace("s1", "s2")对str无效。

您需要做:
str=str.replace("s1", "s2");

请注意,LHS明确记录了替换结果。

希望能帮助到你 :)

您正在将字符串指定为正则表达式。 尝试将子字符串指定为replace()的第一个参数,如下所示:

var url = "http://localhost/xxx/index.html";
url.replace('index.html','changed.html');  // add 'gi' as 3rd param for all occurrences

请参阅文档以获取String.replace

来自http://www.devguru.com/technologies/ecmascript/quickref/regexp_special_characters.html

小数点与换行符以外的任何单个字符匹配。 因此,例如,使用字符串“猫吃蛾子”,正则表达式/.t/gi将匹配“ cat”中的字母“ at”,“ eats”中的“ at”和“ moths”中的“ ot”,但不是“ The”的首字母“ T”。

因此,您必须避开句号:

url.replace(/index\.html/gi,filenames)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM