javascript - Can someone tell me the purpose of the second capture group in the jQuery rts regular expression? -


in jeff roberson's jquery regular expressions review proposes changing rts regular expression in jquery's ajax.js /(\?|&)_=.*?(&|$)/ /([?&])_=[^&\r\n]*(&?)/. in both versions, purpose of second capture group? code replacement of current random timestamp new random timestamp:

var ts = jquery.now(); // try replacing _= if there var ret = s.url.replace(rts, "$1_=" + ts + "$2"); 

doesn't replace matches? thinking same:

var ret = s.url.replace(/([?&])_=[^&\r\n]*/, "$1_=" + ts); 

can explain purpose of second capture group?

it's pick next delimiter in query string on url, still works query string. if url is

http://foo.bar/what/ever?blah=blah&_=12345&zebra=banana 

then second group picks "&" before "zebra".

that's awesome blog post way , should read it.

edit — think it, i'm not sure why it's necessary bother replacing second delimiter. in "fixed" expression, greedy * pick whole parameter value , stop @ delimiter (or end of string) anyway.


Comments

Popular posts from this blog

unicode - Are email addresses allowed to contain non-alphanumeric characters? -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

c++ - Convert big endian to little endian when reading from a binary file -