我有一个字符串,表示由空格分隔的标签列表。它可能看起来像这样:
Australia 2010 David November Family
如果标签包含至少一个空格,则必须引用它。所以字符串可以是:
"Best Friends" "My Pictures" Wow "Very Nice Photo" University
单词也允许引用。例如:
"Good One" Fantastic "February" "My Family" "Friends"
问题是:
如何从字符串中获取一系列标签?
例如,从第三个字符串我想得到以下数组:
arr[0] = "Good One"
arr[1] = "Fantastic"
arr[2] = "February"
arr[3] = "My Family"
arr[4] = "Friends"
如果字符串的格式不正确,我想知道它(例如:结果得到空数组)。
答案 0 :(得分:3)
您可以使用/"[^"]+"|\w+/
之类的正则表达式来匹配标记。
要获取包含所有不带引号的匹配的数组,可以使用类似
var re = /"[^"]+"|\w+/g;
var result = [];
var match;
while(match = re.exec(input))
result.push(match[0].replace(/"/g, ""));
如果您不必删除引号,则可以使用
var result = input.match(re);