我正在尝试将字符串拆分成数组,其中任何数字都分别拆分:

function mysplit(s) { ??? }

// What I want to have happen is this:
//
// mysplit('ABC12DEF678IJ') --> ['ABC',12,'DEF',678,'IJ']
// mysplit('ABCD123') --> ['ABCD',123]
// mysplit('Eeyore') --> ['Eeyore']

我认为我能做到这一点的唯一方法是使用正则表达式替换的函数形式,使用可变状态作为数组,但这看起来很丑。 (请参阅下面的TBD,因为这是我默认情况下尝试执行的方法。)

有没有更简单的方法?

最佳答案

match可以做到:

function mysplit(s) {
    return s.match(/\d+|\D+/g);
}

No tiny issue :)

09-11 15:13