我有这样的代码:
string.replace(/(.|rn)x08/g, '');
替代了Backspace和一个字符,但是对于像'foobb'
这样的一个backspace的情况不超过一个backspace。如何删除背景之前的字符,因此我得到字符串'f'
。
您可以尝试以下方法:
str="abcbbdefg";
while(str.match(/wx08/)){
str=str.replace(/wx08/g,"");
}
当它们仍在字符串中时,它将不断删除"字符 后空间"序列。
' '表示'1或更多',所以请尝试 string.replace(/(。| r n) x08/g,'')
如果您只想删除字符串中的一个或两个0x08字符,然后将其更改为
/(。| r n) x08 {1,2}/g
,但我认为您想做的是删除1个字符,您可以像这样做
/(。
两个。如果您想做更多的事情,我认为编写一个通过char char上的函数并解析的函数会更快
function removeBackslashes(str){
var result = "";
for(var i in str){
if(str.charCodeAt(i) == 8)
{
result = result.slice(0, -1);
}else{
result += str.charAt(i);
}
}
return result;
}
var b = removeBackslashes('foobbasd');
console.log(b, b.length);
我想到了:
'foobb'.replace(/((?:[^x08]|rn)+)(x08+)/g, function(_, chars, backspaces) {
return chars.replace(new RegExp('(.|rn){' + backspaces.length + '}$'), '');
});