Мой код:
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');
Это не работает. Любая идея, что я делаю неправильно?
Метод 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'));
Вы можете просто использовать для этого 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
строку на нужный символ. Это даст вам массив. Теперь вы можете присоединиться к этому массиву с помощью ''
char
следует относиться осторожно, поскольку он может содержать метасимволы регулярных выражений.