【问题标题】:Get string inside given two characters using JavaScript使用 JavaScript 获取给定两个字符内的字符串
【发布时间】:2016-06-01 15:30:52
【问题描述】:

有没有办法使用 JavaScript 将括号 < > 内的每个值推入数组?

举个例子:

<And><Or><And><Eq><FieldRef Name="Editor" /><Value Type="User">XXX</Value></Eq><Eq><FieldRef Name="Document_x0020_Type" /><Value Type="Text">Audit</Value></Eq></And><Eq><FieldRef Name="Base_x0020_Content" /><Value Type="Text">Document</Value>

输出应该是:

Array = ["And", "or", "And", "Eq", "FieldRef Name="Editor" /",.........]

【问题讨论】:

  • “有什么办法……” - 是的,有。你试过什么?

标签: javascript arrays regex


【解决方案1】:

当然有,使用正则表达式 /&lt;([^&gt;]+)&gt;/g 并获取捕获的组值。使用 RegExp.prototype.exec() 方法使用正则表达式获取捕获的值。

var str = '<And><Or><And><Eq><FieldRef Name="Editor" /><Value Type="User">XXX</Value></Eq><Eq><FieldRef Name="Document_x0020_Type" /><Value Type="Text">Audit</Value></Eq></And><Eq><FieldRef Name="Base_x0020_Content" /><Value Type="Text">Document</Value>';

var res = [],
  m,
  reg = /<([^>]+)>/g;

while (m = reg.exec(str))
  res.push(m[1])

console.log(res);

Regex explanation here.

【讨论】:

    【解决方案2】:

    当然……让我们做

    var str = '<And><Or><And><Eq><FieldRef Name="Editor" /><Value Type="User">XXX</Value></Eq><Eq><FieldRef Name="Document_x0020_Type" /><Value Type="Text">Audit</Value></Eq></And><Eq><FieldRef Name="Base_x0020_Content" /><Value Type="Text">Document</Value>',
        reg = /[^><]+/g,
        arr = str.match(reg);
    console.log(arr);

    【讨论】:

      猜你喜欢
      • 2013-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      • 2014-04-02
      • 2012-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多