私は次の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&closingDate = 12/01/2011&closingDate2 = 12/31 'xyz')
この文字列では、上記の正規表現は次のように一致するはずです。
rows = anything
私は実際に/?
それを機能させるために必要さえありません、しかし私がそれを私のjavascriptに入れなければ、それは正規表現でさえないように振る舞います...私は正規表現期間でひどいので、これは私をかなり持っています混乱している。そして、そのエラーは私がFirefoxのエラーコンソールで得ている唯一のエラーです。
編集
上で投稿したリンクを使用すると/
、コードを正規表現ステートメントの先頭としてマークするだけでなく、先頭が実際のスラッシュと一致しようとしているようです。だから、?
そこにあるので、それが何にも一致しない場合/
でも、とにかく続行します。
解像度
さて、最終的に、正規表現を次のように変更する必要がありました。
/rows=.*(?=\&?)/g
これは、「rows =」という単語に一致し、その後にアンパサンドがヒットするかテキストがなくなるまで何かが続きます。