如何从具有方括号[]中的值的字符串中获取值?

时间:2018-11-14 00:01:49

标签: javascript split

我有一个这样的字符串出现:“ [value1] [value2]”

如何获取方括号内的值? 注意:如果字符串是这样的“ [] [value2]”,则第一个有空格的括号必须向我返回“” ...

我一直在尝试很多正则表达式和拆分,但是都没有用。

这是我尝试过的最后一个:

var pattern = /[([^]]*)]/g; 
var res = pattern.exec(datos[0].title); 

我尝试过的另一个是:

var res = datos[0].title.match(/^.*?[([^]]*)].*?[([^]]*)]/gm);

但是我不需要做什么...

我正在尝试找到一种“能做到这一点”的正则表达式,该正则表达式可以在方括号(甚至是空格)内获取任何内容

5 个答案:

答案 0 :(得分:2)

如@HarryCutts所述,您不需要正则表达式:

var x = "[value1][value2]";
console.log( x.slice(1,-1).split('][') );

答案 1 :(得分:0)

您可以尝试使用此正则表达式和强力方式来提取内容。

var regex = /\[(.*?)\]/g;

var value = "[value1][value2][]";

var matches = value.match(regex);

var matchedValues = matches.map(match => {
	return match.replace("[", "").replace("]", "");
}).join(" ");

console.log(matchedValues.toString())

答案 2 :(得分:0)

您可以这样做:

var str = "['value1']['value2']";
var value1 = str.split("]")[0].split("[")[1];
var value2 = str.split("]")[1].split("[")[1];
console.log(str);
console.log(value1);
console.log(value2);

答案 3 :(得分:0)

您可以轻松地将其扩展为更多值。

const string = "[value1][value2]";

const removeBrackets = (stringWithBrackets) => {
  return stringWithBrackets.split("][").map(s => s = s.replace(/\[*\]*/g, ""));
};

const [value1, value2] = removeBrackets(string);

console.log(value1, value2);

答案 4 :(得分:0)

const getItems = (fullItemsString) => {
    let items = fullItemsString.replace(/\[/g, "").split("]");
    items.pop()

    return items;
}

使用:

let items = getItems("[2][][34][1]");

结果:['2','','34','1']