将字符串转换为数字和字母数组

时间:2018-02-28 06:46:12

标签: javascript

var string;
var splitstring = string.split("????");

我的字符串是12BLG123 我需要数组splitstring有元素12,BLG,123 (字母和数字随机变化)

3 个答案:

答案 0 :(得分:4)



const string = `12BLG123`
const splitString = string.split(/(\d+)/).filter(i => i)

console.log(splitString)




正则表达式通过数字字符串拆分字符串。由于split不包含被拆分的值,因此我们使用捕获语法来包含数字字符串。如果字符串以数字字符串开头或结尾,则引入空字符串,因此我们使用filter(i => i)删除空字符串(它起作用,因为空字符串在javascript中是假值)。

答案 1 :(得分:2)

虽然不是正则表达式或拆分,但你可以这样做,



var str = "12BLG123";

var result = [].reduce.call(str, (acc, a) => {
    if (!acc.length) return [a];    // initial case
    let last = acc[acc.length - 1];
    // same type (digit or char)
    if (isNaN(parseInt(a, 10)) == isNaN(parseInt(last.charAt(0), 10))) 
        acc[acc.length - 1] = last + a;
    // different type
    else acc.push(a);
    // return the accumulative
    return acc;
}, [] /* the seed */);

console.log(result);




答案 2 :(得分:0)

这个正则表达式可能会有用。

var splitString = string.split("[^A-Z0-9]+|(?<=[A-Z])(?=[0-9])|(?<=[0-9])(?=[A-Z])");