Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2017, 11:46
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

регулярные выражения
Доброго времени суток,

не силён и совсем запутался в регулярных выражениях. Может у кого-то есть готовое решение?
Нужно из текста убрать все теги кроме следующего набора: <b></b><i></i><font></font><sub></sub><sup></sup>.
Кроме того в комбинациях тегов <script></script> и <style></style> убрать сами теги и всё, что находится между ними.
Ответить с цитированием
  #2 (permalink)  
Старый 08.08.2017, 11:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А кто является источником текста?
Ответить с цитированием
  #3 (permalink)  
Старый 08.08.2017, 11:56
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Текст из iframe
Ответить с цитированием
  #4 (permalink)  
Старый 08.08.2017, 11:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от atanov
Текст из iframe
Я не об этом. Текст формирует сервер, если из него постоянно нужно эти теги убирать, то почему один раз не сделать это сразу на сервере? Или это одноразовая задача?
Ответить с цитированием
  #5 (permalink)  
Старый 08.08.2017, 12:25
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от atanov
Кроме того в комбинациях тегов <script></script> и <style></style> убрать сами теги и всё, что находится между ними.
Как вариант...
var val='Кроме того в комбинациях тегов <script>if (a>b) b=a</script;'
val+='> и <style>div {color: red;}</style> убрать сами теги и всё, что находится между ними.';
var reg=/<(script|style)>.*?<\/(script|style)>/gi;
alert(val.replace(reg,''));
Ответить с цитированием
  #6 (permalink)  
Старый 08.08.2017, 12:30
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Не совсем так. Иногда содержимое iframe нужно редактировать на клиенте.

Последний раз редактировалось atanov, 08.08.2017 в 12:39.
Ответить с цитированием
  #7 (permalink)  
Старый 08.08.2017, 12:38
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от atanov
Нужно из текста убрать все теги кроме следующего набора: <b></b><i></i><font></font><sub></sub><sup></sup>.
Как вариант...

var val='Нужно из текста убрать все теги <p></p> кроме следующего набора: <b></b><i></i><font></font><sub></sub><sup></sup>.'
var reg=/<\/?(.*?)>/gi;
var arr=['b', 'i', 'font', 'sub', 'sup'];
alert(val.replace(reg,test));
function test(str, p1, p2, offset, s) {
	return (arr.indexOf(p1)==-1)? '': str;
};
Ответить с цитированием
  #8 (permalink)  
Старый 08.08.2017, 12:43
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

Сообщение от ksa Посмотреть сообщение
Как вариант...
var val='Кроме того в комбинациях тегов <script>if (a>b) b=a</script;'
val+='> и <style>div {color: red;}</style> убрать сами теги и всё, что находится между ними.';
var reg=/<(script|style)>.*?<\/(script|style)>/gi;
alert(val.replace(reg,''));
ksa

Просвятите пожалуйста, вертикальная черта между script и style что означает?
Ответить с цитированием
  #9 (permalink)  
Старый 08.08.2017, 12:46
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от atanov
вертикальная черта между script и style что означает?
Из документации
Цитата:
x|y
Находит x или y. Например, /green|red/ найдет 'green' в "green apple" и 'red' в "red apple."
https://javascript.ru/RegExp
Ответить с цитированием
  #10 (permalink)  
Старый 08.08.2017, 12:48
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,703

Сообщение от atanov
Просвятите пожалуйста, вертикальная черта между script и style что означает?
Логическое «ИЛИ», кажется так правильно называется.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения zoinx2010 Общие вопросы Javascript 4 07.02.2014 15:37
регулярные выражения remember_me Общие вопросы Javascript 2 26.12.2013 13:56
Составить регулярные выражения ($) Zero Tolerance Общие вопросы Javascript 10 19.11.2013 12:14
Регулярные выражения для javascript qwert_ukg Общие вопросы Javascript 3 20.04.2012 13:45
нежадные регулярные выражения KOLANICH Общие вопросы Javascript 2 12.12.2010 01:08