此问题已在此处找到答案:
用于在方括号之间提取文本的正则表达式(15个答案)三天前关门。
const str = "[1,2,3,4],5,6"; const getArray = (str) => { ... return arr; } console.log(getArray(str)); //[1,2,3,4] ``` `[1,2,3,4]` 是所需的数组。 我怎样才能得到这个?
cidc1ykv1#
你可以用 RegEx 匹配中包含的字符串 [] ```const str = "[1,2,3,4],5,6";
RegEx
[]
const getArray = (str) => {arr = str.match('/[.*]/')[0]return arr;}
console.log(getArray(str));
2g32fytz2#
你可以用 regex 用于提取由 [] 然后运行一个 map 用于消毒。检查这个-
regex
map
const str = "[1,2,3,4],5,6"; const getArray = str => { const regex = /(\[([^\]]+)\])/; const match = regex.exec(str); return match?.[2] ? match[2].split(',').map(x => x.trim()) : []; } console.log(getArray(str));
m2xkgtsf3#
您可以使用javascript方法lastindexof()来查找 [ 及 ] .这将为您提供介于两者之间的所有字符 [ 及 ] .然后可以使用split()方法转换数组。使用map()和number可以将字符串转换为数字
[
]
const str = "[1,2,3,4],5,6"; function getArray(str){ var myArray = str.substring( str.lastIndexOf("[") + 1, str.lastIndexOf("]") ); return myArray.split(",").map(Number); } console.log(getArray(str));
yiytaume4#
这将为您提供字符串中所有数组的数组。
const str = "[1,2,3,4],5,6"; const getArray = (str) => { const ans = [] let stack = [] let isStack = true for (let i = 0; i < str.length; i++) { if (str[i] == '[') { isStack = true; } else if (str[i] == ']') { isStack = false; ans.push(stack) stack = [] } else if (isStack && str[i] != ',') { stack.push(parseInt(str[i])) } } return ans; } console.log(getArray(str)) // [ [ 1, 2, 3, 4 ] ] console.log(getArray(str)[0]) // [ 1, 2, 3, 4 ]
omqzjyyz5#
假设str正好包含一对封闭方括号:
const getArray = (str) => { const idxStart = str.indexOf('[') + 1 const idxEnd = str.indexOf(']') arr = str.slice(idxStart, idxEnd) return arr.split(',')
}
5条答案
按热度按时间cidc1ykv1#
你可以用
RegEx
匹配中包含的字符串[]
```const str = "[1,2,3,4],5,6";
const getArray = (str) => {
arr = str.match('/[.*]/')[0]
return arr;
}
console.log(getArray(str));
2g32fytz2#
你可以用
regex
用于提取由[]
然后运行一个map
用于消毒。检查这个-m2xkgtsf3#
您可以使用javascript方法lastindexof()来查找
[
及]
.这将为您提供介于两者之间的所有字符
[
及]
.然后可以使用split()方法转换数组。
使用map()和number可以将字符串转换为数字
yiytaume4#
这将为您提供字符串中所有数组的数组。
omqzjyyz5#
假设str正好包含一对封闭方括号:
}