如何在特殊字符之前向字符串添加更多文本

时间:2016-10-27 12:43:15

标签: javascript

我想使用jQuery修改字符串,如下所示:

现有价值:myimage_one.png
新值:myimage_one_notold.png

我该怎么办?也许使用concat()函数?

5 个答案:

答案 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.pngmyImage.yeah.gif一样工作)

答案 3 :(得分:0)

假设您在文件名中的最后一个点后面有任何字母,数字,下划线或短划线系列,那么:

filename = filename.replace(/(\.[\w\d_-]+)$/i, '_notold$1');

答案 4 :(得分:0)

您可以使用以下方法进行更改

var existingVal = "myimage_one.png";
var modifiedVal = exisitingVal.replace(".","_notold.");