什么是在字符串中配对字符的优雅方法?

Ric*_*omi 3 javascript string algorithm

例如,如果初始字符串s"0123456789",则所需的输出将是数组["01", "23", "45", "67", "89"].

在JavaScript中寻找优雅的解决方案.

我在想(非常不优雅)是通过拆分空字符串并使用Array.forEach方法迭代字符串,并在每两个字符后插入一个分隔符,然后由该分隔符拆分.这不是一个好的解决方案,但这是我的出发点.

编辑:已发布RegExp解决方案.我很想知道是否还有其他方法.

Mar*_*rty 6

怎么样:

var array = ("0123456789").match(/\w{1,2}/g);
Run Code Online (Sandbox Code Playgroud)

这里我们.match()在你的字符串上使用匹配任何两个或单个({1,2})单词字符(\w)并返回结果数组.


关于编辑非正则表达式解决方案; 你可以做一个不那么优雅的功能,如下所示:

String.prototype.getPairs = function()
{
    var pairs = [];
    for(var i = 0; i < this.length; i += 2)
    {
        pairs[pairs.length] = this.substr(i, 2);
    }

    return pairs;
}

var array = ("01234567890").getPairs();
Run Code Online (Sandbox Code Playgroud)

  • @Rick,Marty` /\w {1,2}/g`就可以了. (2认同)