【问题标题】:Need help with Javascript Regular Expressions - Splitting text在 Javascript 正则表达式方面需要帮助 - 拆分文本
【发布时间】:2010-07-31 14:38:10
【问题描述】:

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

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"

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

【问题讨论】:

  • 如果要创建换行符,只需在行尾放两个空格即可。另请参阅:stackoverflow.com/editing-help 或创建新问题时的 How to format 框。
  • 什么是不是正确的格式?

标签: javascript regex string split


【解决方案1】:

您可以使用像/"[^"]+"|\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);

【讨论】:

  • /"[^"]+"|\S+/g 将增加对未引用字符串中任何字符的支持
猜你喜欢
  • 2023-02-07
  • 2011-05-10
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-30
相关资源
最近更新 更多