我想从带有正则表达式的查询字符串中捕获name的值;我完成了以下内容:
/name=(.*)/g
example: ?name=foo&bar=baz
但是这把所有的绳子都抓到了最后;我知道^
用于不;但我无法弄清楚正确的语法。
由于
答案 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=([^&]+)/