-1

鉴于我有一句话:

var testsentence = 'This "is" a wonderful "sentence" to "test" "stuff"';

我怎样才能得到这样的数组?

var testarray = [ "is", "sentence", "test", "stuff" ]

更新

我正在使用 Chromium 控制台尝试您的响应,但到目前为止所有响应都返回:

[""is"", ""sentence"", ""test"", ""stuff""]

我不想在我的比赛中有引号。

4

5 回答 5

2

要捕获引用的文本,而不是引号...注意match不会返回带有g修饰符的组(请参阅此问题),因此请使用以下内容循环匹配:

var testsentence = 'This "is" a wonderful "sentence" to "test" "stuff"';
var pattern = /"([^"]+)"/g;
var match;
var testarray = [];
while(match = pattern.exec(testsentence)) {
    testarray.push(match[1]);
}
于 2012-12-12T16:48:06.730 回答
1
(testsentence.match(/"\w+"/g) || []).map(function(w) {
    return w.slice(1, -1);
});
于 2012-12-12T16:26:23.037 回答
1
testsentence.match(/"([^"\s])+"/g)

应该返回引用的所有内容,并避免类似""

于 2012-12-12T16:27:04.787 回答
1
testsentence.match(/"[^"]+"/g);

演示

于 2012-12-12T16:33:42.033 回答
0
return testsentence.match(/".+?"/g);
于 2012-12-12T16:29:07.883 回答