有没有办法使用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" /",.........]
答案 0 :(得分:0)
当然有,使用正则表达式 /<([^>]+)>/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);
答案 1 :(得分:0)
当然......让我们做吧
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);
&#13;