正则表达式 - 不包括字符

时间:2015-10-02 20:07:25

标签: javascript regex

我想从带有正则表达式的查询字符串中捕获name的值;我完成了以下内容:

/name=(.*)/g

example: ?name=foo&bar=baz

但是这把所有的绳子都抓到了最后;我知道^用于不;但我无法弄清楚正确的语法。

由于

2 个答案:

答案 0 :(得分:3)

如果你想使用正则表达式,你可以使用这样的非贪婪算子:

name=(.*?)&

顺便说一句,你也可以使用这样的另一个正则表达式来涵盖更多案例:

name=(.*?)(?:&|$)

<强> Working demo

Javascript代码:

var re = /name=(.*?)(?:&|$)/gm; 
var str = 'example: ?name=foo&bar=baz\nexample: ?name=foo\nexample: ?bar=baz&name=foo';
var m;

while ((m = re.exec(str)) !== null) {
    if (m.index === re.lastIndex) {
        re.lastIndex++;
    }
    // View your result using the m-variable.
    // eg m[0] etc.
}

答案 1 :(得分:0)

如果您只有一个或使用全局修饰符以获得更多

,则可以尝试/name=([^&]+)/