我想使用jQuery修改字符串,如下所示:
现有价值:myimage_one.png
新值:myimage_one_notold.png
我该怎么办?也许使用concat()
函数?
答案 0 :(得分:1)
您可以在字符串上使用replace()
函数。在这种情况下,您可以将.png
替换为_notold.png
:
var foo = 'myimage_one.png';
var bar = foo.replace('.png', '_notold.png');
console.log(bar);
或者,如果您只想删除.
的最后一个实例,如果文件名包含多个文件,则可以使用此正则表达式:
var foo = 'myimage_one.png';
var bar = foo.replace(/\.([^\.]*)$/,'_notold.$1');
console.log(bar);
另请注意,上述两种方法都使用本机JS方法,与jQuery
无关答案 1 :(得分:1)
function replaceString(org_str,replace_with)
{
var found_str = org_str.substring(org_str.lastIndexOf('.') + 1);
return org_str.replace(found_str, replace_with);
}
答案 2 :(得分:0)
如果你总是想在最后.
之前追加字符串,你可以使用split:
http://www.w3schools.com/jsref/jsref_split.asp
var strArr = existingVar.split('.');
var newString = "";
for (var i = 0; i < strArr.length; i++) {
if (i+1 < strArr.length) {
newString += strArr[i];
} else {
newString += "_notOld"+ strArr[i+1];
}
}
alert(newString);
这应该在每种情况下完成工作,每个文件类型和名称(例如:my.new.file.is.cool.jpg
应该与myFile.png
或myImage.yeah.gif
一样工作)
答案 3 :(得分:0)
假设您在文件名中的最后一个点后面有任何字母,数字,下划线或短划线系列,那么:
filename = filename.replace(/(\.[\w\d_-]+)$/i, '_notold$1');
答案 4 :(得分:0)
您可以使用以下方法进行更改
var existingVal = "myimage_one.png";
var modifiedVal = exisitingVal.replace(".","_notold.");