我有以下字符串:
var search = "[title|Asc][description|Desc]";
我想要一个阵列:
[
"title|Asc",
"description|Desc"
]
我尝试过各种各样的注册表,但我对此并不了解。
var matches = search.split(/[^a-zA-Z0-9|]/);
我有机会得到一些帮助吗?
答案 0 :(得分:1)
使用split
和filter
var output = search.split(/[\[\]]+/).filter( s => s.length > 0 );
<强>演示强>
var search = "[title|Asc][description|Desc]";
var output = search.split(/[\[\]]+/).filter( s => s.length > 0 );
console.log(output);
&#13;
<强>解释强>
split
/[\[\]]+/
,[]
filter
清空物品。
答案 1 :(得分:1)
删除第一个和最后一个[
,]
,然后按][
search.substring(1,search.length-1).split('][')
var search = "[title|Asc][description|Desc]";
console.log(search.substring(1,search.length-1).split(']['))
答案 2 :(得分:1)
最好使用match
代替split
来确保我们匹配[
和]
之间的字符串:
const regex = /\[([^\]]*)\]/g;
const str = `[title|Asc][description|Desc]`;
let m;
while ((m = regex.exec(str)) !== null) {
console.log(m[1]);
}
&#13;