本文介绍了打破串分解成三个组块,但与二的最小计数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我需要的数字字符串分解成三大块,但我不能让一大块只包含一个数字,它必须包含至少两个。

例如

[123],[456],[7] - 这是不能接受的,因为 7 留在它自己的

[123],[45],[67] - 这是可以接受的解决方案。

我得差不多了,但我不知道如何处理并确保至少有两个数字。

下面是我的解决方案,这打破了串分解成三个部分,但不占最低位计数:

 功能的解决方案(S){
    变种数= s.replace(/ \\ D /克,'');
    数= number.match(/ {1,3} /克); //分解成三分球
    数= number.join(' - ');
    返回数;
}

下面是一个codePEN看到它在行动:


解决方案

您可以使用正则表达式与前瞻。

的<一个href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Ex$p$pssions#special-lookahead\"相对=nofollow>正先行查找等号后的格局,但不包括其在比赛中。

Online RegEx

function format(s) {
    return s.toString().replace(/\d{2,3}(?=..)/g, '$&-');
}

document.write(format(123456789) + '<br>');
document.write(format(12345678901) + '<br>');
document.write(format(1234567) + '<br>');

Edit

While I do not find, that an extra loop via an array is necessary, this proposal gives you the wanted step with String#match() for later joining the array with the following regular expression:

var a, i, s = '';

for (i = 1; i < 10; i++) {
    s += i;
    a = s.match(/.{2,3}(?=..)|.+/g);
    document.write(a.join('-') + '<br>');
}

这篇关于打破串分解成三个组块,但与二的最小计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 07:02