How to match strings in single quote or double quotes?
var str = "abcdef" or var str = '123456'
Regexp
Here's the regexp to match the string - 2 regexp parts seperated by | (or). The left side matches any characters except double quotes which are enclosed in double quotes and the other part matches the string in single quote.
/"[^"]*"|'[^']*'/
Let's have a test.
var re = /"[^"]*"|'[^']*'/g; var ma = '"abc"def"123"'.match(re); return "abc","123"
Application
What is useful with this regexp? We can use it to highlight strings which are enclosed by single quote or double quotes. Like this one,
var re = new RegExp( '^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$');
We could use replace method to add CSS style into the matched strings. Here's the code,
var str = "var re = new RegExp( '^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$');"; var re = /"[^"]*"|'[^']*'/g; var str = str.replace(/("[^"\n]*")|('[^'\n]*')/g,'<span style="color:#c00000">$1$2</span>'); document.getElementById("aa").innerHTML = str;