konfortes
konfortes

Reputation: 99

Javascript regular expression pattern

Can someone help me to figure what's wrong with my pattern?

this is my text: sid='206' x='34.8395' y='32.1178'>×2 (206)

var regex = new RegExp("/x=\'[0-9]+\.[0-9]+\' y=\'[0-9]+\.[0-9]+\'/");

var match;
do {
    match = regex.exec(text);
    if (match) {
        console.log(match[1], match[2], match[3], match[4]);
    }
} while (match);

Upvotes: 1

Views: 53

Answers (2)

anubhava
anubhava

Reputation: 786091

There are no delimiters in RegExp constructor.

You can use this regex:

var re = /x='(\d+\.\d+)' +y='(\d+\.\d+)'/g; 
var str = "sid=\'206' x='34.8395' y='32.1178'>×2 (206)";

while ((m = re.exec(str)) != null) {
   console.log(match[1], match[2]);
}

RegEx Demo

Upvotes: 1

Jason Sperske
Jason Sperske

Reputation: 30446

It looks like you are missing any capturing groups. In RegEx these are groups between () If you rewrite it like this:

x=\'([0-9]+\.[0-9]+)\' y=\'([0-9]+\.[0-9]+)\'

Then you an get the x and y with match1 and match[2]

Here is a demo

Upvotes: 1

Related Questions