使用javascript中的regexp获取引号外的代码

时间:2009-06-30 14:32:12

标签: javascript regex quotes

有没有办法在javascript中使用正则表达式获取一段不在引号(单引号或双引号)之间的代码?

如果我有这个字符串:

'this is a test "this shouldn't be taken"'

结果应该是:

'this is a test'

3 个答案:

答案 0 :(得分:2)

这应删除单引号或双引号之间的任何内容,它适用于多行字符串(包含\ n或\ r \ n的字符串),它还应处理转义引号:

var removeQuotes = /(['"])(?:\\?[\s\S])*?\1/g;

var test = 'this is a test "this shouldn\'t be taken"';
test.replace(removeQuotes, ""); // 'this is a test '

test = 'this is a test "this sho\\"uldn\'t be taken"';
test.replace(removeQuotes, ""); // 'this is a test '

答案 1 :(得分:1)

myString.replace(/".*?"/g, '')

将删除myString中双引号之间的任何字符串。但它不会处理转义的双引号。

答案 2 :(得分:0)

您可以使用javascript replace函数删除字符串的引用部分:

str = 'this is a test "this shouldn\'t be taken"';
str_without_quotes = str.replace(/(['"]).*?\1/g, "") // => 'this is a test '