Javascript检测字符串中的2位数字

时间:2019-03-05 11:07:33

标签: javascript numbers

比方说,用户给我们一个字符串“ 12345678”,很容易将每个数字分开。如果用户输入“ 899091929394”(2位数字系列),我将无法理解如何将长字符串分成2位数字。如果用户输入3位数字序列,该怎么办。

我的问题是:如何从长字符串中检测和分离多位数字?

结果应类似于Array = [89,90,91,92,93,94]

3 个答案:

答案 0 :(得分:1)

这是您想要的:

const string = "899091929394";

const splittedString = string.match(/.{1,2}/g);

console.log(splittedString);

输出:

[ '89', '90', '91', '92', '93', '94' ]

如果要更改“分组依据”编号,请编辑正则表达式/.{1,2}/g

答案 1 :(得分:1)

您可以尝试分离,直到获得系列中的每个项目为止。

function separate(s) {
    var i = 1,
        temp;
    
    while (i < s.length) {
        temp = s.match(new RegExp(`.{${i}}`, 'g')).map(Number);
        if (temp.every((v, i, a) => !i || a[i - 1] + 1 === v || a[i - 1] + 2 === v)) {
            return temp;
        }
        i++;
    }
}


var strings = ["12345678", "8788909192", "899091929394", "234235236237238239"],
    result = strings.map(separate);

result.forEach(a => console.log(...a));

答案 2 :(得分:0)

function seperateNDigitsFromNumber(numberInput, digitsCount) {
        const regexString = new RegExp("\\d{1,"+digitsCount+"}", "g");
        return numberInput
        .match(regexString)
        .map(stringNum => parseInt(stringNum, 10));
}

seperateNDigitsFromNumber("899091929394",2);
示例: seperateNDigitsFromNumber(“ 899091929394”,2)=> [89,90,91,92,93,94]