I’ve the following regex which needs to stop matching when it encounters a hash.
Regex:
/[?&]+([^=&]+)=([^&]*)/gi
URL Sample:
http://website.com/1068?page=4&taco=cat#tasty
The above regex will capture cat#tasty instead of just cat in the last capture group. I attempted the following which works ONLY if a hash is present.
Regex Test:
/[?&]+([^=&]+)=([^&]*)#/gi
If the url doesn’t have a hash, it won’t match. making the hash optional — #? — doesn’t work either as the greedy * of the last capture group still grabs cat#tasty.
Although as Ray pointed out, there are many url parsers available.