如何从字符串中删除所有出现的任何给定字符?

时间:2018-04-30 21:40:26

标签: javascript regex string

我的代码:

    function removeFromString(mystring,char){

    let regex = new RegExp(char, 'g');
    let string;
    for(let i; i< mystring.length; i++){
        string = mystring.replace(regex, ''));

    }
    console.log(mystring);
}
removeFromString('Hello How are you','o');

这不起作用。 知道我做错了什么吗?

2 个答案:

答案 0 :(得分:4)

方法String.replace()不会更改字符串,而是创建新字符串。返回替换结果。

此外,由于您在正则表达式中使用了g标志,它将替换字符串中的所有匹配项,因此您不需要for循环。

function removeFromString(mystring, char) {
  const regex = new RegExp(char, 'g');
  return mystring.replace(regex, '');
}
console.log(removeFromString('Hello How are you', 'o'));

你也可以用循环来实现同样的事情,通过重建原始字符串中不是char的所有字符的字符串:

function removeFromString(mystring, char) {
  let string = '';
  
  for (let i = 0; i < mystring.length; i++) {
    if(mystring[i] !== char) string += mystring[i];
  }
  
  return string;
}
console.log(removeFromString('Hello How are you', 'o'));

答案 1 :(得分:1)

您只需使用replace即可。不需要循环。喜欢

var str = "How are you?";

console.log(str.replace(/o/g, ""))

g标志用于替换所有出现次数

或只是为了好玩。

var str = "How are you?";
console.log(str.split("o").join(''))

您想要的角色

split字符串。这会给你一个数组。现在,您可以使用''

加入此数组