Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярки js (https://javascript.ru/forum/misc/72637-regulyarki-js.html)

АнонимныйПарень 13.02.2018 21:35

Регулярки js
 
Анализирую строку: 'peremennaya=«значение»'
Нужно заменить её на: ' peremennaya=«значение» '

Тоесть добавить пробелы вначале и в конце.

Вместо текста peremennaya может быть любое значение, например:
' title=«PAGE» '
' src=«www.google.com» '
' anytext=«any_value» '

Как реализовать на регулярках, если строка типа:
'peremennaya=«значение»' уже есть?

рони 13.02.2018 21:53

АнонимныйПарень,
alert( 'peremennaya=«значение»'.replace(/(\S+=«)([^»]+)(»)/ , "$1$3") );

АнонимныйПарень 13.02.2018 22:07

Не работает!
Входящая строка:
'<p style="color: white;"> Lorem ipsum. </p>'

Действия:
source.replace(/\s*/g,''); //убираю пробелы, табы, переносы строк
source.replace(/(\S+=$&)([^$&]+)($&)/ , " $1$3");


Выходящая:
'<pstyle="color:white;">Loremipsum.</p>'

НО атрибут слился с началом тега, а я хотел что-бы
'style="color:white;"' заменился на
' style="color:white;" '

Как этого добиться, прошу вас! Пожалуйста!

рони 13.02.2018 22:25

Цитата:

Сообщение от АнонимныйПарень
Не работает!

кавычки ваших примерах разные!!!
alert( '<p style="color: white;"> Lorem ipsum. </p>'.replace(/(\S+=")([^"]+)(")/ , "$1$3") );

АнонимныйПарень 13.02.2018 22:25

Неправильно выразился в начале, уже исправил, гляньте 1 пост

рони 13.02.2018 22:37

Цитата:

Сообщение от АнонимныйПарень
Тоесть добавить пробелы вначале и в конце.

alert( '<p style="color: white;"> Lorem ipsum. </p>'.replace(/(\S+="[^"]+")/ , " $1 ") );

АнонимныйПарень 13.02.2018 22:42

А как бы убрать все пробелы, а потом там их вставить той штукой что ты написал? Пробую так:
source = source.replace(/\s*/g,'');
source = source.replace(/(\S+="[^"]+")/ , " $1 ");

В итоге входит строка:
<p style="color: white;"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus obcaecati, unde cupiditate sint iure quo non in dolorem repudiandae mollitia recusandae provident nostrum, minus minima ipsam fuga, molestiae eaque itaque. </p>


Выходит строка:
<pstyle="color:white;" >Loremipsumdolorsitamet,consecteturadipisicingelit.Natusobcaecati,undecupiditatesintiurequononindoloremrepudiandaemollitiarecusandaeprovidentnostrum,minusminimaipsamfuga,molestiaeeaqueitaque.</p>


И опять атрибут слился с началом тега. Как изменить?

рони 13.02.2018 22:47

Цитата:

Сообщение от АнонимныйПарень
А как бы убрать все пробелы, а потом там их вставить той штукой что ты написал? Пробую так:

либо не понимаю, либо не знаю ... не могу помочь

АнонимныйПарень 13.02.2018 22:48

Если будут идеи пиши
Спасибо за то что помогал, лайк тебе!

Manyasha 14.02.2018 15:23

Цитата:

Сообщение от АнонимныйПарень (Сообщение 478061)
Выходит строка:
<pstyle="color:white;" >Loremipsumdolorsitamet,consecteturadipisicingelit.Natusobcaecati,undecupiditatesintiurequononindoloremrepudiandaemollitiarecusandaeprovidentnostrum,minusminimaipsamfuga,molestiaeeaqueitaque.</p>

И опять атрибут слился с началом тега. Как изменить?

а то что остальные пробелы удалились, это нормально?
Или их не надо было удалять и вы пытаетесь предусмотреть вариант, когда пробел уже есть:
<p style="color:white;" >


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