删除字符串的最后一个实例时的正则表达式或lastIndexOf

时间:2014-03-14 02:52:10

标签: javascript regex replace

我无法应用其他类似问题的答案(尝试替换最后一次出现的字符串),因为我的语法有问题。

我试图替换最后一次出现的字符串。字符串的值存储在传递给.replace()方法的变量中,如下所示:

var str += some additive strings;
var del = a string that lives within str; // the value is dynamic

str = str.replace(del$, ''); // this doesn't work to remove the last occurrence of `del` in str

据我了解,$参数查找正则表达式中最后一次出现的字符串;但是我无法弄清楚如何将它与传递给.replace()的变量一起使用。有什么建议吗?

3 个答案:

答案 0 :(得分:0)

您可以将lastIndexOf()slice()

一起使用

示例:

var str ="HI this is cool isn't it? cool";
var del='cool';// put whatever here
var index = test.lastIndexOf(del);
var length=del.length;
if(index!=-1)
var removeStr=test.substr(index,length);    
str.replace(removeStr,''); // HI this is cool isn't it? 

Mate,这只是一个答案。您需要根据自己的需要使用它。

已更新现场演示:http://jsfiddle.net/n2Kgn/2

答案 1 :(得分:0)

如果您想将RegExp与$一起使用,请执行以下操作:

var str += 'some additive strings';
var re = new RegExp('a string that lives within str$');
str = str.replace(re, '');

答案 2 :(得分:0)

str = str.substring(0, str.length - del.length);