使用javascript / jquery将数组的声明字符串拆分为字符串数组的最佳方法是什么?我正在使用的字符串的示例:
franchise[location][1][location_name]
我希望将其转换为如下数组:
['franchise', 'location', '1', 'location_name']
奖金:如果我还可以使该数值成为一个整数,而不仅仅是一个字符串,那将是非常棒的事情。
答案 0 :(得分:3)
您可以将String.split
与与所有无字母数字字符匹配的正则表达式一起使用。
类似的东西:
const str = 'franchise[location][1][location_name]';
const result = str.split(/\W+/).filter(Boolean);
console.log(result);
答案 1 :(得分:2)
一种选择是只匹配单词字符:
console.log(
'franchise[location][1][location_name]'.match(/\w+/g)
);
要将“ 1”转换为数字,可以在之后进行.map
:
const initArr = 'franchise[location][1][location_name]'.match(/\w+/g);
console.log(initArr.map(item => !isNaN(item) ? Number(item) : item));
答案 2 :(得分:0)
您可以尝试
const str = 'franchise[location][1][location_name]';
const res = str.split(/\W+/).map(i => { return Number(i) ? Number(i) : i;})