views:

936

answers:

2

Why do they use

/

instead of

'

in JavaScript string replace()? E.g.:

document.write(str.replace(/hi/, "hey"));
+8  A: 

because // denotes a Regex, which is a much more powerful version of string searching/replacing than a simple Replace("x","y")

But also supports simple patterns.

var a = "xxx";
var b = a.replace(/x/,'y');
alert( b ); //alerts "yxx"

adding the g modifier to replace globaly would be:

b = a.replace(/x/g,'y');
alert(b); //alerts "yyy"

You can also add the i modifier to make it case-insensitive.

var a = "XXX";
b = a.replace(/x/gi,'y');
alert(b); // alerts "yyy";

https://developer.mozilla.org/En/Core_JavaScript_1.5_Guide/Regular_Expressions

Chad Grant
that's precisely it, +1
Peter Perháč
Good, comprehensive answer! +1
Cerebrus
+2  A: 

The JavaScript method replace() allows both a plain string and a RegExp object as the search part.

And in your example a regular expression is used (RegExp literal syntax) although a plain string would suffice.

Gumbo