Javascript正则表达式不能分割
Javascript regular expression can't split
我有一些文本,比如
<<<<((((sports====1000))))>>>>
或
<<<<((((sports====1000))))((((librarys====2000))))>>>>
我的问题是我从这里得到文本,比如
text[0][0] = 'sports';
text[0][1] = '1000';
text[1][0] = 'library';
text[1][1] = '2000';
如有任何帮助,我将不胜感激。
你可以尝试分割除内容以外的所有元素,然后删除数组中的空元素。
s="<<<<((((sports====1000))))((((librarys====2000))))>>>>";
s.split(/[<()>=]/).filter(function(ele){if (ele!="") return true});
=> ["sports", "1000", "librarys", "2000"]
这是一种hack,因为我不知道你的文本的语法,这可能会或可能不会为你工作。
又一个hack:
s="<<<<((((sports====1000))))((((librarys====2000))))((((no_value====))))>>>>";
arr = s.replace("====)","====nil").
split(/[<'(')>=]/).
filter(function(ele){if (ele!="") return true});
var res=[];
for(var i = 0; i < arr.length; i+=2) { res.push([arr[i],arr[i+1]]); }
res
=> [["sports", "1000"], ["librarys", "2000"], ["no_value", "nil"]]
regex获取的元素如下所示:
'({4}(.+?)={4}(.+?)'){4}
参见这个例子
试试这段代码。
var test = "<<<<((((sports=====))))((((====2000))))((((hall====2000))))>>>>";
textAfterSplit1 = test.split(/[(<>)]/);
var myarray = [];
for (i=0; i <(textAfterSplit1.length); i++){
textAfterSplit2 = textAfterSplit1[i].split(/[=]/);
if (textAfterSplit2[0] == null){
textAfterSplit2[0]= "";
}
if (textAfterSplit2[1] == null) {
textAfterSplit2[1]= "";
}
myarray.push([textAfterSplit2[0],textAfterSplit2[1]]);
}
document.write(myarray[0][0]);
document.write(myarray[0][1]);
document.write(myarray[1][0]);
document.write(myarray[1][1]);
预期输出:
sports2000
它在所有情况下都有效。希望这能帮到你。干杯!
相关文章:
- 为什么我不能将未定义分配给 window.load
- 为什么我不能将Javascript对象分配给DOM元素
- Rails: Javascript不能在分页对象上工作
- 我不能在分页后调用onclick事件
- 试着学习Angular——为什么这里的分页不能正常工作?
- 为什么引导动态表分页不能工作
- 分页不能正常工作
- Javascript正则表达式不能分割
- 同时确保数字不能再被分割
- jqGrid分页不能使用json数据类型
- 使用facebookconnect插件时不能调用未定义的分割
- Jeasyui DataGrid分页不能正常工作
- flexbox中可拖动的分割窗格窗口不能越过子元素
- 模式窗口不能为分页数据表工作
- 额外的jquery不能在数据表分页中工作
- 不能在MVC5中使用存储过程进行数据分页
- 分页在extjs中不能正常工作
- 为什么webpack代码分割不能像预期的那样工作
- 分页没有'不能在模板中工作
- jqGrid将loadonce设置为true,重置行对象后不能分页