Ответ 1
Весь матч всегда будет группой 0, вам нужно получить доступ к этой конкретной группе (группа 1 в этом случае, так как первая группа не является захватом), вы можете сделать это следующим образом:
var str = "<p model='cat'></p>";
var regex = /(?:model=')(.*)(?:')/g
var match = regex.exec(str);
alert(match[1]); // cat
Кроме того, я полагаю, вы, вероятно, хотите несколько совпадений в строке str, вы можете сделать это вот так:
var str = "<p model='cat'></p><p model='dog'></p><p model='horse'></p>";
var regex = /(?:model=')([^']*)/g
var matches = [];
var match;
while (match = regex.exec(str)) {
matches.push(match[1]);
}
alert(matches); // cat,dog,horse