我有一个串联的字符串[Provider Name 2]-[124]-[12-3456790]
.
我要在
array[0] = "Provider Name 2",
array[1] = 124,
array[2] = "12-3456790"
我尝试将字符串拆分与火柴一起使用,但它对我不起作用
使用正则表达式匹配非[]
字符,然后查看]
:
const input = "[Provider Name 2]-[124]-[12-3456790]";
const output = input.match(/[^[]]+(?=])/g);
console.log(output);
/[^[]]+(?=])/
意味着:
-
[^[]]+
- 匹配一个或多个既不[
也不]
的字符 -
(?=])
- 检查匹配子字符串后面的下一个字符是否为]
如果您还需要绝对确定比赛开始前出现的角色是[
,则可以在较新的环境中使用回溯:
const input = "[Provider Name 2]-[124]-[12-3456790]";
const output = input.match(/(?<=[)[^[]]+(?=])/g);
console.log(output);
如果不能使用 lookback,请改为匹配开头方括号,然后.map
匹配数组以删除后面的第一个字符:
const input = "[Provider Name 2]-[124]-[12-3456790]";
const output = input.match(/[[^[]]+(?=])/g)
.map(str => str.slice(1));
console.log(output);