Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

РегЭкспы и JavaScript

10K
11 ноября 2005 года
infous
19 / / 04.11.2005
Всем привет!
Вопрос заключается в следующем, есть на странице кусок текста и там есть строки в кавычках, так вот, каким образом можно выделить эти строки другим цветом используя регэкспы? ввиду того, что мои познания в регэкспах невелики.. немогу понять почуму мой вариант работает неверно. Вот код:

<html>
<script>
function f1() {
var s = document.all["idText"].innerText;
s = s.replace(/(\".*\")/g, "<font color=green>$1</font>");
document.all["idText"].innerHTML = s;
}
</script>
<body>
<div id="idText">
String1 "String2" String3 "String4"
</div>
<script>f1();</script>
</body>
</html>

Этот мой вариант работает совершенно неверно. Этот вариант непонимает что такое открывающая кавычка и закрывающая, и выделяет от String2 до String4. Но как я понимаю выражение /(\".*\")/g, должно было искать последовательно, а на самом деле нет.
239
14 ноября 2005 года
Dolonet
1.7K / / 20.05.2000
В регулярных выражениях есть квантификатор жадности. Он стремится захватить в результат выражения не наибольшее количество символов (как это делает обычно), а наоборот, наименьшее. В Вашем случае это должно выглядеть, я думаю, так: "/(\".*?\")/g"
10K
15 ноября 2005 года
infous
19 / / 04.11.2005
Цитата:
Originally posted by Dolonet
В регулярных выражениях есть квантификатор жадности. Он стремится захватить в результат выражения не наибольшее количество символов (как это делает обычно), а наоборот, наименьшее. В Вашем случае это должно выглядеть, я думаю, так: "/(\".*?\")/g"



БОЛЬШОЕ СПАСИБО! все работает вроде :) а вы не могли бы подсказать, где я могу найти какуюнить доку по этому?

239
15 ноября 2005 года
Dolonet
1.7K / / 20.05.2000
Цитата:
Originally posted by infous
БОЛЬШОЕ СПАСИБО! все работает вроде :) а вы не могли бы подсказать, где я могу найти какуюнить доку по этому?

По ниже указанной ссылке описан весь синтаксис регулярных выражений для современного PHP

http://www.php.net/manual/ru/reference.pcre.pattern.syntax.php

Удачи! :)

10K
17 ноября 2005 года
infous
19 / / 04.11.2005
Возник еще одил любопытный вопрос по регэкспам, предположим есть следующий код:

<div id="divText">
12 bbb aaa ccc 34 aaa vvv dddd 55 aaa bbb 66
</div>

Например, мне нужно заменить два числа по две цифры с начала строки и в конце строки на что-нибуть другое. Я могу сделать следующим образом:

str = str.replace(/^\d{2}/, "DD").replace(/\d{2}\s*$/, "DD");

то есть, в первом подходе ищу в начале, а во втором в конце. А можно ли это сделать все в одном выражении???
13K
17 ноября 2005 года
Teza
10 / / 15.11.2005
Цитата:
Originally posted by infous
БОЛЬШОЕ СПАСИБО! все работает вроде :) а вы не могли бы подсказать, где я могу найти какуюнить доку по этому?


http://www.providers.ru/articles/php/regexp-intro.html

239
18 ноября 2005 года
Dolonet
1.7K / / 20.05.2000
Цитата:
Originally posted by infous
Например, мне нужно заменить два числа по две цифры с начала строки и в конце строки на что-нибуть другое. Я могу сделать следующим образом:

str = str.replace(/^\d{2}/, "DD").replace(/\d{2}\s*$/, "DD");

то есть, в первом подходе ищу в начале, а во втором в конце. А можно ли это сделать все в одном выражении???

str = str.replace(/^(\d{2})(.*)(\d{2}\s*)$/,"DD\\2DD");

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог