Вопрос по javascript, regex – Заменить / удалить все между двумя символами [дубликаты]

27

This question already has an answer here:

var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

Как я могу удалить все междуH а такжеS так что результат будетABCDEFGHSTUVWXYZ?

Да, но если вы предоставите менее простой пример (если вашis это просто) это может помочь нам предоставить вам лучшее / более подходящее решение вашей проблемы. David Thomas
Я не могу просто использоватьABCDEFGHSTUVWXYZЭто был только пример. Очевидно, я знаю, что удаление это вручную вариант. UserIsCorrupt
Просто используйтеABCDEFGHSTUVWXYZ, Читайте между словами: перефразируйте свой вопрос. Вы хотите, чтобы каждая буква между H и S была удалена? Переменная первая и последняя буква? MaxArt

Ваш Ответ

2   ответа
42

var alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
alphabet = alphabet.replace(/H.*S/, 'HS')

Или просто:

var alphabet = "ABCDEFGHSTUVWXYZ";
@Nilay Кроме того, чтобы получить желаемый результат, вы должны сделать свое регулярное выражение.* не жадный, изменив его на.*? и сделайте свое регулярное выражение глобальным сg флаг:/<script>.*?<\/script>/g, но, пожалуйста, не делайте этого. Знайте, что два примера, которые я показал, чтобы обойти это и запустить скрипт, не единственные два. Есть тысячи, и вы никогда не сможете получить их всех. Попытка сделать это будет бесконечной битвой, и люди будут постоянно находить способы обойти ее.
Спасибо @paulpro, я попробовал/<script>.*?<\/script>/g но не сработал как положено! Потому что, если первая строка тела HTML - это скрипт, а последняя строка - тоже скрипт, тогда он удалял весь контент. Поэтому я использовал jQuery для удаления всех элементов скрипта из всего DOM.
Здравствуйте, у меня есть источник HTML, из которого мне нужно удалить все теги скрипта. Я пробовал ниже код, но он также удаляет код между 2 экземплярами. Код:'Hello this is <script> demo </script> that you <script> demo </script> <style>know</style>'.replace(/<script>.*<\/script>/, '') Результат:Hello this is <style>know</style> Ожидаемое:Hello this is that you <style>know</style>
@Nilay Вы должны задавать новые вопросы, а не комментировать другие. Я постараюсь ответить здесь, хотя. Вы действительно никогда не должны делать зачистку<script> теги. Это очень плохая практика по соображениям безопасности. Слишком много всего может пойти не так. Что делать, если исходный код имеет<scr<script></script>ipt>alert('bad'); в этом? Как насчет:<img src=":" onerror="alert('bad');" />?
@Nilay Вместо этого вы должны внести в белый список определенные теги и атрибуты, которые разрешены или лучше использоватьBBCodeили даже лучшеMarkdown, Я уверен, что на любом языке, который вы используете, вы можете найти некоторую библиотеку для компиляции Markdown в HTML.
9

var strippedAlphabet = alphabet.replace(/H.*S/, 'HS');

Похожие вопросы