Уважаемые эксперты! Объясните ситуацию с match и replace. В php с синтаксисом патэрна все ясно, в javascript чего-то я недопонимаю (или незнаю) Внизу примера. Меняем только переменную с. В 1-м примере блок 1 - истина, 2-й ложь (или не знаю что, возвращается вся строка без изменений) Вопрос: почему? Ведь патэрн тот же! Во 2 примере заключаем переменную с в eval и добавляем /. О чудо! Все работает... но теперь скрипт ругется на флэш в переменной. Если его убрать, то все хорошо. Флэш нужен однозначно! Вопрос: что не так? Как этот скрипт написать правильно? Может есть какой метод? В регулярном выражении мне необходимы переменные, но с ними явно проблема. В php такой проблемы нет, но мне нужен именно javascript. Перепробовал кучу вариантов - все безрезультатно.
Приветствую Вас, Василий! На самом деле, в javascript регулярные выражения задаются немного по-другому. 1. Вы использовали кавычки при присваивании паттерна переменной. Так делать нельзя, надо писать var c = /^(.*)(эл\/шторы)(.*)$/; 2. Значение регулярного выражения у Вас как переменая. Соответственно, Вам надо использовать конструктор RegExp. Пример: var c = new RegExp('^(.*)('+word+')(.*)$'); Итого получаем готовый рабочий скрипт: <script language="JavaScript1.2"> var word="эл/шторы"; var new_word='везде эл/шторы висят'; var c = new RegExp('^(.*)('+word+')(.*)$'); if (new_word.match(c)) alert ('да');else alert ('нет'); var str=new_word.replace (c,'$1-$2-$3'); alert (str); </script>
Ответ отправлен: 01.09.2004, 11:39 Отправитель: Licvidator
Вопрос № 269
Здраствуйте. Срочно нужно сделать сайт. Не подскажите какую-нибудь прогу для этого. Чтобы максимум возможностей(ну там стили,шаблоны etc) и минимум кодинга. Гигантов типа Draemeweaver и малышей типа power website builder просьба не предлагать.
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.