Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение ошибка "invalid quantifier", JavaScript, replace. (https://javascript.ru/forum/misc/11898-regulyarnoe-vyrazhenie-oshibka-invalid-quantifier-javascript-replace.html)

abstract 20.09.2010 12:32

Регулярное выражение ошибка "invalid quantifier", JavaScript, replace.
 
Здравствуйте уважаемые участники форума! Необходима помощь.. Столкнулся с необходимостью написания javascript, но имею весьма скромный опыт работы с ним, уж тем более с регулярными выражениями.
Суть частной задачи, которую пытаюсь решить такова:
1) Есть строка:
s="<tr id="newline" nomer="[2]"><td><input name="FirmID[2]" value="куцук42322" type="text"></td><td><input " name="numb[2]" value="3423423" type="text"></td><td><input name="Name[2]" value="" type="text"></td><td><input name="TimeSamp[2]" value="" type="text"></td><td><input name="Fact_address[2]" value="" type="text"></td><td><input name="Code[2]" value="" type="text"></td><td><input name="Employers[2]" value="" type="text"></td><td><input name="Technical_emp[2]" value="" type="text"></td><td valign="top"><a href="#" onclick="return rmline(2);">удалить</a></td></tr></tbody><tbody></tbody>"



2)Необходимо удалить из неё подстроки value="*****" любой интерпретации.
3)Придумал выражение:
(?<=]\")( value=\".*?\" )(?=type)



4)Проверил тут http://regexr.com?2s6ao
5)Применил функцию:
s=s.replace(/(?<=]\")( value=\".*?\" )(?=type)/gi,"value=\"\"");



6)Результат:
FireFox 3.6
invalid quantifier ?<=]\")( value=\".*?\" )(?=type)
http://localhost:8080/myproj/administration.jsp#
Line 34

Kolyaj 20.09.2010 12:33

Регулярные выражения в JS не поддерживают просмотр назад.

abstract 20.09.2010 12:41

Цитата:

Сообщение от Kolyaj (Сообщение 71342)
Регулярные выражения в JS не поддерживают просмотр назад.

А как быть?

Kolyaj 20.09.2010 12:45

А в чём проблема?

abstract 20.09.2010 12:51

Боюсь "заехать" не на то "value=""" и испортить код. Я понимаю, что проверка назад в случае конкретно этой строки s избыточна.. но на всякий случай...

Kolyaj 20.09.2010 12:55

Любое выражение с проверкой назад можно написать без него.

abstract 20.09.2010 13:51

Цитата:

Сообщение от Kolyaj (Сообщение 71347)
Любое выражение с проверкой назад можно написать без него.

Это уже из разряда фишек? или есть стандартные приемы?


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