如何在JavaScript中连续替换一个或两个背面的背景和角色



我有这样的代码:

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 + '}$'), '');
});

最新更新