将字符串分成组-JavaScript

给定一个字符串S,该字符串由字母,数字和特殊字符组成。

我们需要编写一个程序将字符串拆分为三个不同的字符串S1,S2和S3,这样

  • 字符串S1将包含S中存在的所有字母,

  • 字符串S2将包含S中存在的所有数字,并且

  • S3将包含S中存在的所有特殊字符

字符串S1,S2和S3的字符顺序应与输入中出现的顺序相同。

示例

以下是代码-

const str = "Th!s String C0nt@1ns d1fferent ch@ract5rs";
const seperateCharacters = str => {
   const strArr = str.split("");
   return strArr.reduce((acc, val) => {
      let { numbers, alpha, special } = acc;
      if(+val){
         numbers += val;
      }else if(val.toUpperCase() !== val.toLowerCase()){
         alpha += val;
      }else{
         special += val;
      };
      return { numbers, alpha, special };
      }, {
         numbers: '',
         alpha: '',
         special: ''
   });
};
console.log(seperateCharacters(str));

输出结果

以下是控制台中的输出-

{
   numbers: '115',
   alpha: 'ThsStringCntnsdfferentchractrs',
   special: '!  0@  @'
}