var str="itss[BACK][BACK][BACK][BACK][BACK][BACK] it's a test stringgg[BACK][BACK]";
var word = '[BACK]';
var substrings = str.split(word);
var cnt= substrings.length - 1;
for(var i = 0;i<cnt;i++){
str = str.replace(/.{1}\[BACK\]{1}/i,""); //remove backspace and one character before it.
}
上面的脚本返回类似“ [返回,这是一个测试字符串”的信息,我需要获取此结果,因为“这是一个测试字符串”,请帮助我。
最佳答案
实际上,没有正则表达式会更容易做到这一点。
String.prototype.replaceFromIndex=function(index, length, replace) {
return this.substr(0, index) + replace + this.substr(index+length);
}
var search = '[BACK]';
var str="itss[BACK][BACK][BACK][BACK][BACK][BACK] it's a test stringgg[BACK][BACK]";
while((index = str.indexOf(search)) >= 0){
str = str.replaceFromIndex(index-1, search.length+1, '');
}
alert(str);
检查http://jsfiddle.net/fRThH/2/以获取工作示例。
将其包装在一个函数中,您就可以开始使用!
感谢Cem Kalyoncu(https://stackoverflow.com/a/1431113/187018)提供的
String.prototype.replaceAt
的略微修改版本关于javascript - 我如何在javascript中匹配和替换字符串及其前一个字母?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8600578/