Показать сообщение отдельно
  #1 (permalink)  
Старый 10.04.2015, 10:22
Новичок на форуме
Отправить личное сообщение для emptinessandform Посмотреть профиль Найти все сообщения от emptinessandform
 
Регистрация: 24.02.2015
Сообщений: 4

Регулярное выражение, из учебника. Ни как не могу понять
// регэксп для пары атрибут=значение
var attr = /(\s*\w+=(\w+|"[^"]*")\s*)/

// используем его внутри регэкспа для тега
var reg = new RegExp('<\\w+(?=(' + attr.source + '*))\\1>', 'g');

var good = '...<a test="<>" href="#">... <b>...';

var bad = "<tag a=b  a=b  a=b  a=b  a=b  a=b  a=b  a=b\
  a=b  a=b  a=b  a=b  a=b  a=b  a=b  a=b  a=b  a=b  a=b  a=b  a=b";

alert( good.match(reg) ); // <a test="<>" href="#">, <b>
alert( bad.match(reg) ); // null (нет результатов, быстро)


в этом выражении мне вроде бы все понятно, но я не уверен.
<\\w+(?=(' + attr.source + '*))\\1>

первая часть выражения <\\w+(?=(' + attr.source + '*))\\1>
сработает только если внутренняя скобка найдет любое выражение подходящее под attr.source?

ну вот сработало, а потом, что произойдет?
<\\w+(?=(' + attr.source + '*))\\1> //1 просто вставит запомненное?
Ответить с цитированием