多次出现的Javascript Regex

时间:2011-10-06 19:03:29

标签: javascript regex

var text = "pgPag.append('<li><a title=\"' + __('First') + '\" href=\"#\">&lt;&lt;</a></li>');            pgPag.append('<li><a title=\"' + __('Previous') + '\" href=\"#\">&lt;</a></li>');  pgPag.append('<li><label>&nbsp;' + __('Page') + '&nbsp;</label><input type=\"text\" size=\"1\" /><label>&nbsp;</label></li>');           pgPag.append('<li><a title=\"' + __('Next') + '\" href=\"#\">&gt;</a></li>');            pgPag.append('<li><a title=\"' + __('Last') + '\" href=\"#\">&gt;&gt;</a></li>');";
var exp = '(?:(\'[a-z]*\'))';
var re = new RegExp(exp,["img"]);
var match = re.exec(text);
document.write(match);

现在我怎么能打印像“__”这样的字符串,例如“First”,“Previous”,“Page” 使用上面的代码,我只能获得第一个字符串,即“First”而不是剩余的字符串。

必需输出:

首先 以前 页 下一个 最后

2 个答案:

答案 0 :(得分:1)

有两个问题:

一: new RegExp(exp,["img"]);的第二个参数需要是字符串,而不是数组。因此:

var re = new RegExp(exp, "img");

是你所追求的。或者,更好的是:

var re = /(?:('[a-z]*'))/img // This is a regular expression literal

二:像Mike所说:使用text.match(re)来获取整个字符串中的匹配数组。 re.exec一次只会给你一场比赛。

答案 1 :(得分:0)

而不是

var match = re.exec(text);

DO

var matches = text.match(re);