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

Ваш аккаунт

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

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

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

регулярное выражение (js|php)

7.8K
11 апреля 2008 года
Hrew
185 / / 23.04.2007
здравствуйте. Нужна помощь в составлении регулярного выражения (на js или php). Нужно из строки типа '<div class="cl1" id = "el1">' убрать все параметры, за исключением id. При этом я заранее знаю только, что это будет div. Значение id, наличие id в строке и расположение id в строке (в начале, в конце, в середине) не известно. У меня получается сделать это отдельно для вариантов без id и с id, а хотелось бы совместить.
304
11 апреля 2008 года
Fenyx
707 / / 26.01.2005
<?
$text='<div class="cl1" id = "el1">';
$var=preg_replace("|(<div)[^>]*(>)|i", "$1$2", $text);
echo $var
?>
7.8K
11 апреля 2008 года
Hrew
185 / / 23.04.2007
Цитата: Fenyx

$var=preg_replace("|(<div)[^>]*(>)|i", "$1$2", $text);


это оставит div вообще без параметров, а мне нужен (только) id (если он есть).

304
12 апреля 2008 года
Fenyx
707 / / 26.01.2005
Цитата: Hrew
это оставит div вообще без параметров, а мне нужен (только) id (если он есть).


Туеву хучу параметров нужно учитывать, будет ли пробел между id и =, ,будут ли кавычки и какие одинарные или двойные.... в принципе ревлизуемо
скинь свои регулярки посмотрим

7.8K
14 апреля 2008 года
Hrew
185 / / 23.04.2007
 
Код:
str = '<div class="123" id = "1234" style="width:100px">';
if (str.indexOf(' id')>-1) str = str.replace(/(<div).*?(\sid\s*=\s*.*?)(\s.*?)?(>)/,'\$1\$2\$4');
else str = str.replace(/(<div).*?(>)/,'\$1\$2');
alert(str);

в принципе работает и меня устраивает, просто интересно как совместить
4.4K
14 апреля 2008 года
frosty
53 / / 24.09.2004
А нельзя это сделать с помощью DOM ?
7.8K
15 апреля 2008 года
Hrew
185 / / 23.04.2007
с помощью DOM вообще много чего можно. И это тоже, если постараться. Но в данном конкретном случае меня интересует, как будет выглядеть регулярное выражение, которое могло бы решить поставленную задачу одним махом, а не в два приема. Если оно вообще будет как-то выглядеть, конечно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог