我有以下 javascript 代码:
if (url.match(/?rows.*?(?=\&)|.*/g)){
urlset= url.replace(/?rows.*?(?=\&)|.*/g,"rows="+document.getElementById('rowcount').value);
}else{
urlset= url+"&rows="+document.getElementById('rowcount').value;
}
我invalid quantifier
在/?rows.*?...
. 使用测试字符串在http://www.pagecolumn.com/tool/regtest.htm上测试时,同样的正则表达式有效
?srt=acc_pay&showfileCL=yes&shownotaryCL=yes&showclientCL=no&showborrowerCL=yes&shownotaryStatusCL=yes&showclientStatusCL=yes&showbillCL=yes&showfeeCL=yes&showtotalCL=yes&dir=asc&closureDate=12/01/2011&closureDate2=12/31/2011&sort=notarystart&='tablename&=' 'xyz')
在这个字符串中,上面的正则表达式应该匹配:
行=任何东西
实际上我什/?
至不需要让它工作,但如果我不把它放到我的javascript中,它就像它甚至不是正则表达式......我对正则表达式时期很糟糕,所以这个让我很漂亮使困惑。这个错误是我在 Firefox 的错误控制台中得到的唯一一个错误。
编辑
使用我在上面发布的链接,似乎前导/
尝试匹配实际的正斜杠,而不是仅仅将代码标记为正则表达式语句的开头。所以?
它在那里,所以如果它与任何东西都不匹配/
,它仍然会继续。
解析度
好的,所以最后,我不得不将我的正则表达式更改为:
/rows=.*(?=\&?)/g
这匹配了单词“rows=”,后跟任何内容,直到它碰到一个&符号或文本用完。