Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.08.2014, 14:57
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

Снова регулярки
есть строка
text = '<img alt="" src="child.jpg" style="width: 640px; height:417px;">'

подскажите пожалуйста, как в ней заменить width на 100% и вообще убрать height?
можно как вариант вообще найти style="" и заменить все что в него входит
и вывести

пока слаб в регулярках юзал всякие примеры такого рода
text = text.replace(/style="width:/g, 'TEST') alert(text)
но не доходит (

спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2014, 16:12
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

если быстро
var s = '<img alt="" src="child.jpg" style="width: 640px; height:417px;">'.replace(/style=".+?"/, 'style="width:100%;"');

alert(s);
Ответить с цитированием
  #3 (permalink)  
Старый 19.08.2014, 08:51
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

Pavel M.,
Спасибо.
А если допустим нет вообще атрибутов style как можно их добавить?
например:
'<img alt="" src="child.jpg">'

Последний раз редактировалось Зосимов, 19.08.2014 в 09:03.
Ответить с цитированием
  #4 (permalink)  
Старый 19.08.2014, 09:31
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

или даже - если есть атрибут style то заменить (как выше) а если нет, то добавить
Ответить с цитированием
  #5 (permalink)  
Старый 19.08.2014, 14:34
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

добавьте еще один replace, например

var s = '<img alt="" src="child.jpg" style="width: 640px; height:417px;">'
.replace(/style=".+?"/, 'style="width:100%;"')   // заменит style, если есть
.replace(/<img (?!.*style=)/, '<img style="width:100%;" '); // добавит style, если нет
      
alert(s);
      
s = '<img alt="" src="child.jpg">'
.replace(/style=".+?"/, 'style="width:100%;"')   // заменит style, если есть
.replace(/<img (?!.*style=)/, '<img style="width:100%;" '); // добавит style, если нет
      
alert(s);
Ответить с цитированием
  #6 (permalink)  
Старый 20.08.2014, 08:11
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

Pavel M.,
я так понял можно и так
<img (?!.*style=)|style=".+?"

спасибо!
Ответить с цитированием
  #7 (permalink)  
Старый 16.09.2014, 10:32
Кандидат Javascript-наук
Отправить личное сообщение для Зосимов Посмотреть профиль Найти все сообщения от Зосимов
 
Регистрация: 11.02.2013
Сообщений: 102

вот что странно - если на странице один рисунок, то он принимает размер 100% , а если например два, то у последующих размер не меняется
Сообщение от Pavel M. Посмотреть сообщение
добавьте еще один replace, например

var s = '<img alt="" src="child.jpg" style="width: 640px; height:417px;">'
.replace(/style=".+?"/, 'style="width:100%;"')   // заменит style, если есть
.replace(/<img (?!.*style=)/, '<img style="width:100%;" '); // добавит style, если нет
      
alert(s);
      
s = '<img alt="" src="child.jpg">'
.replace(/style=".+?"/, 'style="width:100%;"')   // заменит style, если есть
.replace(/<img (?!.*style=)/, '<img style="width:100%;" '); // добавит style, если нет
      
alert(s);
Ответить с цитированием
  #8 (permalink)  
Старый 16.09.2014, 10:34
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

всем регуляркам поставь флаг "g"

например /trololo/g
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
снова про выделение активных пунктов yozuul jQuery 15 28.05.2014 20:48
И снова про увеличении картинки при наведении totalavitaminoz Общие вопросы Javascript 6 28.05.2014 07:57
...и снова Countdown--> Spirit_on Общие вопросы Javascript 33 10.05.2014 23:27
панель в панель из панели и снова в панель bessss ExtJS 6 04.09.2011 12:59
и снова IE (не работает смена style) lvil Элементы интерфейса 11 09.06.2009 16:37