以下是http://jsbin.com/USONirAn/1
的示例var string = "some text username#Jake# some text username#John# some text some text username#Johny# userphoto#1.jpg#";
var type = "username";
var regexp = new RegExp(type + "#(.*?)#");
var matches = string.match(regexp);
当前正则表达式返回matches
一个包含3个项目的数组 - [username#Jake#, username#John#, username#Johny#]
。
如何让它只返回我用来搜索的字符串 - (.*?)
?在此示例中,应该是数组[Jake, John, Johny]
。是否可以通过更改正则表达式函数来实现此目的?
更新:
我还尝试使用exec
函数,但它同时返回[username#Jake#, Jake]
http://jsbin.com/USONirAn/6
答案 0 :(得分:0)
搜索和 - 别替换
var matches = []
string.replace(regexp, function () {
matches.push(arguments[1]);
});