【发布时间】:2011-03-17 02:05:05
【问题描述】:
有人可以告诉我如何在 JavaScript 中执行以下操作吗?我知道如何获取图像的 src,我只是希望能够用新的东西替换文件名。
/image/any/path/ANY-TEXT_HERE.png
/image/any/path/NEWTEXT.png
【问题讨论】:
标签: javascript regex replace
有人可以告诉我如何在 JavaScript 中执行以下操作吗?我知道如何获取图像的 src,我只是希望能够用新的东西替换文件名。
/image/any/path/ANY-TEXT_HERE.png
/image/any/path/NEWTEXT.png
【问题讨论】:
标签: javascript regex replace
不区分大小写的版本:
path = path.replace(/(.*)\/.*(\.png$)/i, '$1/NEWTEXT$2')
删除 / 后的 i 使其区分大小写。
【讨论】:
另一种选择:
var filename = "/image/any/path/NEWTEXT.png";
var splitFilename = filename.split("/");
var newPath = splitFilename.slice(0, splitFilename.length - 1).join("/")
if (newPath.length !== 0) {
newPath += "/"
}
newPath += newFilename;
【讨论】:
到目前为止,所有其他解决方案都假设实际上存在 IS 路径。它们仅在至少有一个正斜杠时才起作用。这个经过测试的函数适用于所有情况,包括空路径:
function rename_img_file(text, newname)
{ // Rename file in a IMG src (no query or fragment)
var re = /^(.*\/)?[^\/]+\.(png|gif|jpe?g)$/i;
var rep_str = '$1' + newname + '.$2';
text = text.replace(re, rep_str);
return text;
}
【讨论】:
var url = "/image/any/path/ANY-TEXT_HERE.png";
var mystring = "NEWTEXT";
var ind1 = url .lastIndexOf('/');
var ind2 = url .lastIndexOf('.');
var new_url = url.substring(0,ind1+1 )+ mystring + url.substring(ind2 );
alert(new_url );
【讨论】:
ind2 = url .indexOf('.'); 更改为:ind2 = url .lastIndexOf('.'); 修复了点问题。
javascript 它确实对文件有限制。 我假设您想在服务器上执行此操作。如果是这样,您应该使用服务器端脚本,而不是客户端。 也许你在谈论一个 ajax 脚本 如果您能进一步解释一下,也许我可以帮助您
【讨论】: