在Javascript Regular Expressions方面需要帮助 - 拆分文本

时间:2010-07-31 14:38:11

标签: javascript regex string split

我有一个字符串,表示由空格分隔的标签列表。它可能看起来像这样:

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"

如果字符串的格式不正确,我想知道它(例如:结果得到空数组)。

1 个答案:

答案 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);