使用正则表达式将字符串转换为不同长度的数组

时间:2018-02-24 14:10:32

标签: javascript regex

长度为2的数组的字符串可以像下面这样完成。

let str1 = '112213';
let str1Array = str1.match(/.{2}/g);
console.log(str1Array);

结果是

[ '11', '22', '13' ]

是否可以获得[' 1',' 12',' 2' ,' 13']同样?

2 个答案:

答案 0 :(得分:5)

您可以使用split()代替match()在一个正则表达式中提供两种长度:

(.)(..)?

当字符串长度不均匀时,可选的量词是必不可少的。

JS代码:



console.log(
  '112213'.split(/(.)(..)?/).filter(Boolean)
);




答案 1 :(得分:1)



function myFunction() {
  var text = document.getElementById("input").value;
  console.clear()
  var re = /(.)(.{2})/g;
  var m;
  var arr = [];
  
  do {
      m = re.exec(text);
      if (m) {
          arr.push(m[1], m[2]);
      }
  } while (m);
  console.log(arr)
}

<form action="javascript:myFunction()">
  <input id="input" type="text" value="112213"><br><br>
  <input type="submit" value="Submit">
</form>
&#13;
&#13;
&#13;

相关问题