String.replace со специальными символами, отмечая работу

Я потратил несколько часов, пытаясь понять, что здесь происходит, глядя на переполнение стека и в других местах, и я не могу понять, что происходит. Буду очень признателен за любую помощь !!

Мне нужно заставить document.write('< /div>'); перейти в -> < /div>

Я упростил его до простейшего возможного случая с помощью примера HTML ниже.

<script>
var str = "document.write('</div>');";
str = str.replace("/document.write/g","");
console.info(str); //</div>
</script>

Вам не составило бы труда понять, если бы вы взглянули на в руководствах.

revo 20.04.2018 23:39

Вы так говорите, но я уже давно пользуюсь regexr.com, W3Schools и MDN Web Docs. Я неправильно понял в Документах, где ввод должен был быть строкой | regexp. Я ценю помощь.

Matt 20.04.2018 23:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
41
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Исключите цитаты, и все работает. Он интерпретируется как строковый литерал из-за кавычек, тогда как литерал регулярного выражения выражается между простыми /.

Кроме того, . необходимо экранировать, иначе он соответствует любому другому одиночному символу.

<script>
var str = "document.write('</div>');";
str = str.replace(/document\.write/g,"");
console.info(str); //</div>
</script>

Я по-прежнему рекомендую избегать .. Он соответствует буквальной точке (вместе со всем остальным), но я думаю, что OP действительно хотел буквальное совпадение.

CRice 20.04.2018 23:39

Но это соответствует "document write" и "document-write" и ... вы поняли идею

ibrahim mahrir 20.04.2018 23:44
str = str.replace(/document\.write\('/g,"")
Matt 20.04.2018 23:46

Флаг g вам не нужен. Также кажется, что OP сделал обновление.

revo 20.04.2018 23:48

Извините за путаницу с флагом g. В моем реальном жизненном случае у меня есть несколько совпадений в строке. Благодарю всех за помощь!

Matt 23.04.2018 23:36

String.prototype.replace() принимает либо строку, либо регулярное выражение. Если вы собираетесь использовать строку, это должно быть:

var str = "document.write('</div>');";
str = str.replace("document.write","");
console.info(str);

Другие вопросы по теме