我在变量中有动态值,每个变量用[和]例如
分隔JUNE 30
RC4 Now Available
Today we’re happy to announce that we are shipping Angular 2.0.0-rc.4.
有没有办法使用split函数从上面提取[和]之间的值?
var data="[Continuing] [Returning] "; or
var data="[ACCT_BBA] "; or
var data="[12001] [12009] [21077] [13880] ";
var data="[13880] ";
e.g。在最后一个检索示例:12001,12009,21077,13880
答案 0 :(得分:5)
data.slice(1, -2).split("] [")
应该完成这项工作,或者如果您的开始和结束不确定
data.replace(/^\s*\[|\]\s*$/g, "").split("] [")
或者,如果您需要更复杂的东西,通常选择.match
使用全局正则表达式,或者如果需要处理任意嵌套结构,则构建自己的解析器。
答案 1 :(得分:2)
使用
data.split('] [').map(function (item) { return item.replace("]", "").replace("[", "")})
像这样:
//var data="[Continuing] [Returning]";
// var data="[ACCT_BBA]";
var data="[12001] [12009] [21077] [13880]";
var res = data.split('] [').map(function (item) { return item.replace("]", "").replace("[", "")})
console.log(res)
答案 2 :(得分:1)
data.match(/\[(\w+)\]/g).map(e => e.slice(1, -1))
您可以将\w
替换为字符范围,例如[a-zA-Z0-9_]
答案 3 :(得分:0)
如果您这样做,请执行以下操作:
var data="[12001] [12009] [21077] [13880]";
var arr = data.split(" ");
for(let i = 0; i < arr.length; i++){
arr[i] = arr[i].replace('[','');
arr[i] = arr[i].replace(']','');
}
console.log(arr);
只是一个非常基本的例子。