正则表达式:在字符或字符和行尾之间获取字符串

时间:2014-08-13 16:54:01

标签: javascript regex string

我有这些可能的字符串:

&modelIds=340&makeIds=4307,6548&stuffId=340
OR
&modelIds=340&makeIds=4307,6548

我试图提取makeIds的数组或更简单的makeIds字符串(在本例中为" 4307,6548")并且我只是将它们拆分为以后逗号。

我已经让它在第一种情况下工作,而不是第二种工作:

var stringTest = "&modelIds=340&makeIds=4307,6548&stuffId=340"
var matches = stringTest.match(/makeIds=(.*)&\b/)

返回:["makeIds=4307,2342&", "4307,2342"]所以我可以这样做:

var ids = matches[1];

不幸的是,这不适用于第二个字符串。我已尝试/makeIds=(.*)?(&|$)\b/,但这也无效。

1 个答案:

答案 0 :(得分:3)

您必须嵌套在?量词中。这是一个可选的匹配。你想让你的.*懒惰:

/static_keywords=(.*?)(&|$)\b/