Используйте 10.0.2.2 для AVD по умолчанию и 10.0.3.2 для Genymotion
Примечание: не используйте это в коде, критичном к производительности.
В качестве альтернативы регулярным выражениям для простой буквальной строки вы можете использовать
str = "Test abc test test abc test...".split("abc").join("");
Общий шаблон
str.split(search).join(replacement)
Раньше в некоторых случаях это было быстрее, чем использование replaceAll
и регулярного выражения, но, похоже, в современных браузерах это уже не так.
Бенчмарк: https://jsperf.com/replace-all-vs-split-join
Заключение: если у вас критический вариант использования (например, обработка сотен строк), используйте метод Regexp . Но для большинства типичных случаев использования не стоит беспокоиться о специальных символах.
Соответствует глобальному регулярному выражению:
anotherString = someString.replace(/cat/g, 'dog');
Использование регулярного выражения с установленным флагом g
заменит все:
someString = 'the cat looks like a cat';
anotherString = someString.replace(/cat/g, 'dog');
// anotherString now contains "the dog looks like a dog"
str = str.replace(/abc/g, '');
Или попробуйте функцию replaceAll отсюда:
Какие полезные методы JavaScript, расширяющие встроенные объекты?
str = str.replaceAll('abc', ''); OR
var search = 'abc';
str = str.replaceAll(search, '');
РЕДАКТИРОВАТЬ: Пояснение о доступности replaceAll
Метод replaceAll добавлен в прототип String. Это означает, что он будет доступен для всех строковых объектов / литералов.
Например,
var output = "test this".replaceAll('this', 'that'); //output is 'test that'.
output = output.replaceAll('that', 'this'); //output is 'test this'
Используйте регулярное выражение:
str.replace(/abc/g, '');
str = str.replace(/abc/g, '');
В ответ на комментарий:
var find = 'abc';
var re = new RegExp(find, 'g');
str = str.replace(re, '');
В ответ на комментарий Click Upvote вы можете даже упростить его подробнее:
function replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
Примечание: Регулярные выражения содержат специальные (мета) символы, и поэтому опасно слепо передавать аргумент в вышеупомянутой функции find
без предварительной обработки для экранирования этих символов. . Это описано в Mozilla Developer Network Руководство по JavaScript по регулярным выражениям , где они представляют следующую служебную функцию:
function escapeRegExp(str) {
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
Итак, чтобы заставить replaceAll ( )
выше безопаснее, его можно изменить на следующее, если вы также включите escapeRegExp
:
function replaceAll(str, find, replace) {
return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
}
В ноябре 2019 новая опция в настоящее время добавляется к JavaScript string.prototype.replaceAll()
, это только поддерживается со столпотворением. JS, но возможно в будущем это может быть реализовано во всех браузерах. для получения дополнительной информации читайте здесь площадь https://v8.dev/features/string-replaceall