tags:

views:

32

answers:

2

In ruby, I often use something like this:

if "my string123" =~ /string(\d+)/
  puts "I got #{$1}"
end

How would I do something similar in javascript? Currently, I've been doing this but it feels dirty.

m = "my string123".match(/string(\d+)/)
if (m)
  puts "I got " + m[1]

Perhaps I should just live with this, but thought I'd ask if there was a syntax subtelty I was missing. Thanks!

+1  A: 

You aren't missing anything.
If m is already defined, you could do if(m = "string".match(/regex/)), but this is less clean anyway, and you cannot use that with var.

Kobi
how important is the 'var' anyways? I used to not use it and it seemed to work fine in all browsers? :)
Kevin
@Kevin - Thanks. As for `var`, it could be *extremely* important: http://stackoverflow.com/search?q=javascript+var
Kobi
A: 

this is just for testing the appearance of the expression in the text:


    var a = "my string123"; //or given as data..
    var b = /string(\d+)/;
    if (b.test(a)) alert("found some digits inside");

this is for getting an array of matches:


var str = "Watch out for the rock!".match(/r?or?/g);

str then contains ["o","or","ro"]

Elad Karako