Javascript 将字符串拆分为具有备用字符串的数组(&A);两位数

Javascript 将字符串拆分为具有备用字符串的数组(&A);两位数,javascript,arrays,string,split,Javascript,Arrays,String,Split,是否可以拆分一个字符串(可能使用正则表达式),使每个其他数字都是一对(从右端开始) 我尝试反转字符串&然后添加两个和一个字符的交替块,直到字符串的末尾(前面)。然后再倒过来。这主要是有效的,但它有缺陷(并非适用于所有情况)。我也试过正则表达式 (\d\d)(\d)(\d\d)(\d)(\d\d)(\d) 但这也不起作用(讽刺的是,只有在regex测试仪中才起作用)-它太长了,但我需要它来处理最多10位数字。不难: 从右边开始,我将取一次2位数,第二次1位数。 使用切片。然后我将使用unshif

是否可以拆分一个字符串(可能使用正则表达式),使每个其他数字都是一对(从右端开始)

我尝试反转字符串&然后添加两个和一个字符的交替块,直到字符串的末尾(前面)。然后再倒过来。这主要是有效的,但它有缺陷(并非适用于所有情况)。我也试过正则表达式

(\d\d)(\d)(\d\d)(\d)(\d\d)(\d)
但这也不起作用(讽刺的是,只有在regex测试仪中才起作用)-它太长了,但我需要它来处理最多10位数字。

不难:

从右边开始,我将取一次2位数,第二次1位数。 使用
切片
。然后我将使用
unshift
将其推送到数组的开头

我使用了一个标志,来知道何时只取一个参数,何时取两个参数(配对标志)

结果:

["1"]
["12"]
["1", "23"]
["1", "2", "34"]
["12", "3", "45"]
["1", "23", "4", "56"]
["12", "3", "45", "6", "78"]
["1", "23", "4", "56", "7", "89"]
["1", "2", "34", "5", "67", "8", "90"]

我最终到达了那里

//             1                [1]
//            12               [12]
//           123             [1,23]
//          1234           [1,2,34]
//         12345          [12,3,45]
//        123456        [1,23,4,56]
//       1234567      [1,2,34,5,67]
//      12345678     [12,3,45,6,78]
//     123456789   [1,23,4,56,7,89]
//    1234567890 [1,2,34,5,67,8,90]

var results = "";

pairUp(1)
pairUp(12)
pairUp(123)
pairUp(1234)
pairUp(12345)
pairUp(123456)
pairUp(12345678)
pairUp(123456789)
pairUp(1234567890)

alert(results);

function pairUp(num)
{
  var s = num.toString();
  s = s.split("").reverse().join("");
  var a = s.split("");

  var r = []; // our results array
  count = 0;

  for (var i = 0; i <= a.length -1; i++)
  {
    temp = a[count];

    if ((i % 2) == 0) // even (0, 2, 4)
    {
      var p = a[count+1];
      var q = a[count];

      if (p == undefined) p = "";
      if (q) r.push(p + q+ "");

      count+=2;
    }
    else 
    {
      if (temp != undefined) r.push(temp + "");
      count+=1;
    }
  } // end loop


  r = r.reverse();

  results+= r + "\n";

} // end pair up
/1[1]
//            12               [12]
//           123             [1,23]
//          1234           [1,2,34]
//         12345          [12,3,45]
//        123456        [1,23,4,56]
//       1234567      [1,2,34,5,67]
//      12345678     [12,3,45,6,78]
//     123456789   [1,23,4,56,7,89]
//    1234567890 [1,2,34,5,67,8,90]
var结果=”;
佩鲁普(1)
佩鲁普(12)
佩鲁普(123)
pairUp(1234)
佩鲁普(12345)
pairUp(123456)
pairUp(12345678)
pairUp(123456789)
pairUp(1234567890)
警报(结果);
函数pairUp(num)
{
var s=num.toString();
s=s.split(“”).reverse().join(“”);
var a=s.split(“”);
var r=[];//我们的结果数组
计数=0;

对于(var i=0;i)什么是语言?是的。这是可能的。现在请阅读。在这种情况下:
//1234[1,2,34]
可能这
//1234[12,34]
?我将数字分解为单词。一千、二百、三十四个。有趣的问题,#阿米娜你的解决方案更优雅、更快-但我决心做到这一点!
["1"]
["12"]
["1", "23"]
["1", "2", "34"]
["12", "3", "45"]
["1", "23", "4", "56"]
["12", "3", "45", "6", "78"]
["1", "23", "4", "56", "7", "89"]
["1", "2", "34", "5", "67", "8", "90"]
//             1                [1]
//            12               [12]
//           123             [1,23]
//          1234           [1,2,34]
//         12345          [12,3,45]
//        123456        [1,23,4,56]
//       1234567      [1,2,34,5,67]
//      12345678     [12,3,45,6,78]
//     123456789   [1,23,4,56,7,89]
//    1234567890 [1,2,34,5,67,8,90]

var results = "";

pairUp(1)
pairUp(12)
pairUp(123)
pairUp(1234)
pairUp(12345)
pairUp(123456)
pairUp(12345678)
pairUp(123456789)
pairUp(1234567890)

alert(results);

function pairUp(num)
{
  var s = num.toString();
  s = s.split("").reverse().join("");
  var a = s.split("");

  var r = []; // our results array
  count = 0;

  for (var i = 0; i <= a.length -1; i++)
  {
    temp = a[count];

    if ((i % 2) == 0) // even (0, 2, 4)
    {
      var p = a[count+1];
      var q = a[count];

      if (p == undefined) p = "";
      if (q) r.push(p + q+ "");

      count+=2;
    }
    else 
    {
      if (temp != undefined) r.push(temp + "");
      count+=1;
    }
  } // end loop


  r = r.reverse();

  results+= r + "\n";

} // end pair up