用JavaScript中的Regex替换文件名

时间:2011-03-16 20:36:27

标签: javascript regex

我需要在JavaScript中使用Regex替换按钮,并且想知道如何执行此操作。我知道如何获取按钮的src,但我需要获取文件名,并根据可以切换的两个选项添加一些文本“-next”或删除“-next”。以下是两个不同的文件名:

/images/button.png
/images/button-next.png

非常感谢任何帮助。

6 个答案:

答案 0 :(得分:2)

要在最后一个点之前插入-next,您可以

result = subject.replace(/(?=\.[^.]+$)/g, "-next");

要删除最后一个点之前的-next

result = subject.replace(/-next(?=\.[^.]+$)/g, "");

答案 1 :(得分:0)

在我看来,你需要的东西非常简单:

if (addingNext) {
    return str.replace(/\.png$/i, '-next.png');
} else {
    return str.replace(/-next\.png$/i, '.png');
}

答案 2 :(得分:0)

if (url.match(/-next/))
    newUrl = url.replace("-next.", ".");
else newUrl = url.replace(".", "-next.");

答案 3 :(得分:0)

var str = "/images/button.png";
    var idx = str.lastIndexOf('.');
    var replValue = "-next";
    var newStr = str.substring(0,idx) + replValue +
str.substring(idx);

可能有更有效的方法,但这可行。你也想测试没有。找到。你也可以使用正则表达式,但这更明确。

答案 4 :(得分:0)

function toggle(img){
    if(img.src.match(/-next\.[^\.]+$/)){
        img.src=img.src.replace(/\.[^\.]+$/,'-next$&');
        return true;
    }
    img.src=img.src.replace(/-next(\.[^\.]+)$/,'$1');
    return true;
}

适用于任何文件扩展名。

答案 5 :(得分:0)

var src1 = "/images/button.png";
var src2 = "/images/button-next.png";

src1 = src1.replace(/\.(\w+)/, "-next.$1");
src2 = src2.replace("-next", "");