只返回比赛的一部分

时间:2014-01-02 16:48:45

标签: javascript html regex string search

以下是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

1 个答案:

答案 0 :(得分:0)

搜索和 - 别替换

var matches = []
string.replace(regexp, function () {
    matches.push(arguments[1]);
});

http://jsbin.com/USONirAn/4