在JS中的字符串中按字符类反转String

时间:2018-04-09 04:31:21

标签: javascript node.js regex string

我需要转换["abc123!@#\n314159","987bbc\n#$%\nxyz886"]

加入["zyx688\n%$#\n789cbb","951413\ncba321#@!"]

我目前的代码:

function reverseAll(arr){
  //coding here...
  var reversedArr = [];
  (function(){
    arr.reverse()
  })();
  (function(){
    for (var i = 0; i < arr.length; i++) {
        reversedArr.push(arr[i].split('\n').reverse())       
      }
  })();
  console.log (reversedArr)
}

记录[ [ 'xyz886', '#$%', '987bbc' ], [ '314159', 'abc123!@#' ] ]

我遇到了通过字符类反转单个字符串的问题,我想我可以使用正则表达式但不知道该怎么做。

1 个答案:

答案 0 :(得分:2)

您可以使用以下方法获得预期的逆转:

function reverseAll(data)
{
 var output=[];
  for(var j=data.length-1;j>=0;j--){
  var rev = "";
  var arr=data[j].split("\n");
  const regex = /\d+|[a-zA-Z]+|[^\da-zA-Z]+/g;
  let m;

    for(var i=arr.length-1;i>=0;i--)
    {
      while ((m = regex.exec(arr[i])) !== null) 
           rev+=m[0].split("").reverse().join("");
       if(i>0)
         rev+='\n';
    }
  output.push(rev);
  }
 return output;
}

console.log(reverseAll(["abc123!@#\n314159","987bbc\n#$%\nxyz886"]));