"unescape('awefawef')unescape('efawefwf')unescape('awefawef')"
.match(/unescape\(\'([^\)]+)\'\)/gi)如果有多个unescape(...)匹配,它会返回与unescape匹配的内容,但我只需要()括号中的内容。
谢谢;)
所需输出:
['awefawef','efawefwf','awefawef']发布于 2011-08-05 00:56:53
您将需要使用不贪婪的运算符来仅匹配括号中的内容,并且要获得所有结果,您将需要对同一字符串多次调用RegExp.exec。
var regex = /unescape\('(.+?)'\)/ig;
var string = "this unescape('foo') is a unescape('bar') test";
var result;
while(result = regex.exec(string))
console.log(result[1]);发布于 2011-08-05 00:45:06
您可以从RegExp.$1获得它。
"unescape('awefawef')unescape('efawefwf')unescape('awefawef')".match(/unescape\(\'([^\)]+)\'\)/gi);
console.log(RegExp.$1); //awefawef发布于 2011-08-05 00:46:22
如果要使用捕获,可以使用Regex.exec()。使用你的案例:
var str = "unescape('foo')unescape('bar')unescape('baz')";
var regex = /unescape\(\'([^']+)\'\)/g;
var result;
while( result = regex.exec(str) ){
alert(result[1]);
}编辑:修正了原始答案
https://stackoverflow.com/questions/6945025
复制相似问题