我有一个这样的字符串:
var myString = "MyString-[ADDAAD]-isGreat";
我想将这个字符串提取为3个部分:
var stringOne = "MyString-";
var stringTwo = "ADDAAD";
var stringThree = "-isGreat";
我知道如何在两个方括号之间获取字符串:
var matches = patternString.match(/\[(.*?)\]/);
现在matches[1]
包含ADDAAD
但我怎样才能得到另外两部分呢?
答案 0 :(得分:2)
使用底部正则表达式选择除-
,[
和]
之外的所有字符。
var myString = "MyString-[ADDAAD]-isGreat";
var parts = myString.match(/[^-\[\]]+/g);
console.log(parts);

因此,如果您想将值存储在自定义变量中,请使用底部代码
var stringOne = parts[0];
var stringTwo = parts[1];
var stringThree = parts[2];
答案 1 :(得分:2)
你可以用正则表达式拆分字符串。请注意,所有捕获组内容也将是结果数组的一部分。为避免空白项目,您可以在.filter(Boolean)
之后添加split()
。
请参阅下面的JS演示:
var myString = "MyString-[ADDAAD]-isGreat";
console.log(myString.split(/\[(.*?)]/).filter(Boolean));
console.log("s1-[s2]".split(/\[(.*?)]/).filter(Boolean));
注意您不必转义]
使用过的外部字符类,如果之前没有对应的[
,它总是被解析为文字结束括号。