Regex to extract substring, returning 2 results for some reason

Viewed 219326

I need to do a lot of regex things in javascript but am having some issues with the syntax and I can't seem to find a definitive resource on this.. for some reason when I do:

var tesst = "afskfsd33j"
var test = tesst.match(/a(.*)j/);
alert (test)

it shows

"afskfsd33j, fskfsd33"

I'm not sure why its giving this output of original and the matched string, I am wondering how I can get it to just give the match (essentially extracting the part I want from the original string)

Thanks for any advice

5 Answers

Just get rid of the parenthesis and that will give you an array with one element and:

  • Change this line

    var test = tesst.match(/a(.*)j/);

  • To this

    var test = tesst.match(/a.*j/);

If you add parenthesis the match() function will find two match for you one for whole expression and one for the expression inside the parenthesis

  • Also according to developer.mozilla.org docs :

If you only want the first match found, you might want to use RegExp.exec() instead.

You can use the below code:

RegExp(/a.*j/).exec("afskfsd33j")
Related