有没有办法在javascript中使用正则表达式获取一段不在引号(单引号或双引号)之间的代码?
如果我有这个字符串:
'this is a test "this shouldn't be taken"'
结果应该是:
'this is a test'
答案 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 '