У меня есть следующий код JavaScript: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/2011&sort=notaryname&pageno=0&rows=anything&Start=0','bodytable','xyz')
В этой строке, указанное регулярное выражение должно соответствовать:
rows=anything
Я на самом деле даже не нужен /?
, чтобы получить он работает, но если я не помещу это в свой javascript, он действует так, как будто это даже не регулярное выражение ... Я ужасен с периодом регулярных выражений, поэтому у меня это довольно запутанно. И эта ошибка является единственной, которую я получаю в консоли ошибок Firefox.
EDIT
Используя эту ссылку я отправил выше, кажется, что ведущие /
пытается соответствовать фактическим слеш вместо того, чтобы просто маркировка кода как начало регулярных выражений заявления. Таким образом, ?
находится там, так что если он не соответствует /
ни к чему, он все равно продолжается.
РЕЗОЛЮЦИЯ
Итак, в конце концов, я должен был изменить свое регулярное выражение к этому:
/rows=.*(?=\&?)/g
Это соответствует слово «строки =», а затем что-нибудь, пока он не попал амперсанд или закончился текст.
Что вы ожидаете от ведущего "?" значить? – Pointy
Я использую его так, чтобы он не возвращал false, даже если '/' ничего не соответствует. – James
Ну, тогда вы хотите поместить остальное регулярное выражение в круглые скобки и поставить «?» ** после ** это, не ранее. Квантеры всегда появляются ** после ** того, на что они ссылаются. – Pointy