Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярка по замене символа (https://javascript.ru/forum/misc/72665-regulyarka-po-zamene-simvola.html)

zhenia3003 16.02.2018 05:15

Регулярка по замене символа
 
Хочу в тексте заменить двойные ковычки на елочки:
alert($('.text').html().replace(/"([^"]+)"/g, '«$1»'));

Но замена происходит и у тегов, как в регулярке указать, чтобы искомое значение не начиналось со знака "=" (равно) ?

ksa 16.02.2018 08:35

Цитата:

Сообщение от zhenia3003
чтобы искомое значение не начиналось со знака "="

Как вариант...

alert($('.text').html().replace(/([^=])?"([^"]+)"/g, '$1«$2»'));

laimas 16.02.2018 08:53

ksa,
это не будет работать.

zhenia3003 16.02.2018 09:35

Не работает. В начале текста ковычки заменяются, а когда доходит до тегов получаю следующее:
<img src="«/images/blog/2018/2/1/1.jpg»" alt="«Интерьерные" наклейки»="">

рони 16.02.2018 09:40

zhenia3003,
примеры что есть на входе, что хотите на выходе, несколько?

laimas 16.02.2018 09:53

zhenia3003,
если речь о замене в структуре html, то лучше получать тег, затем его содержимое, которое и изменять уже. В общем-то об этом уже столько написано, и плагинов уже наклепали. Просто скриптов "наколенных" тоже уже предостаточно.

https://habrahabr.ru/sandbox/67646/

рони 16.02.2018 09:54

Цитата:

Сообщение от zhenia3003
Хочу в тексте заменить двойные ковычки на елочки:

так может в тексте и менять? :)

Alexandroppolus 16.02.2018 09:54

Цитата:

Сообщение от zhenia3003
$('.text').html().replace ...

лучше обойти дерево $('.text') и сделать замены в текстовых нодах

ksa 16.02.2018 10:05

Цитата:

Сообщение от laimas
это не будет работать.

Цитата:

Сообщение от zhenia3003
Не работает.
<img src="«/images/blog/2018/2/1/1.jpg»" alt="«Интерьерные" наклейки»="">

Не работает не из-за моей "добавки"... :D
Оно не рабочее изначально.
Цитата:

Сообщение от рони
так может в тексте и менять?

Так же искать значения атрибутов и менять в них...

ksa 16.02.2018 10:16

Цитата:

Сообщение от zhenia3003
В начале текста ковычки заменяются, а когда доходит до тегов получаю следующее:
<img src="«/images/blog/2018/2/1/1.jpg»" alt="«Интерьерные" наклейки»="">

Как вариант...

var str='<img src=""/images/blog/2018/2/1/1.jpg"" alt=""Интерьерные" наклейки">';
alert(str.replace(/([^=])?"([^"=]+?)"/g, '$1«$2»'));

Но кавычки должны быть парными внутри...


Часовой пояс GMT +3, время: 13:29.