Reputation: 15390
testString = "something://something/task?type=Checkin";
patt = new RegExp("something\/(\w*)\?");
match = patt.exec(testString);
document.querySelector('#resultRegexp').innerHTML = match[1];
I want to capture task
So shouldn't this RegExp work?
I am grabbing any alphanumeric character up until the question mark... and capturing it.
Upvotes: 1
Views: 117
Reputation: 672
try with this: var pat = /something:\/\/(?:[^\/]+\/)+(\w+)\?(\w+=\w+)/;
it can match string such as:
something://something/task?type=Checkin
something://something/foo/task?type=Checkin
something://something/foo/bar/task1?type3=Checkin4
Upvotes: 0
Reputation: 10738
I think this would be enough: (\w*)\?
, since / is not captured by \w and the only ? in the string is after your target string.
Upvotes: 1
Reputation: 664385
You would need to escape the slash in regex literals, and the backslash in string literals which you create regexes from:
var patt = /something\/(\w*)\?/g;
// or
var patt = new RegExp("something/(\\w*)\\?", 'g');
I strongly recommend the first version, it is more readable.
Upvotes: 2