JSFiddle - React, Tailwind, and code Playground

JavaScript

GetPersonalWithMask = function (OriStr,oPrefix) {
   var OutPut = '';
   var arr = OriStr.split("");    
   var arrMatch = [ 0, OriStr.length - 1 ];
   var regMail = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
   var regMobile = /^(09([0-9]){8})$/;
   
   if (regMobile.test(OriStr))
       arrMatch =[0, 1, 2, 7, 8, 9]
   else{    
       if(regMail.test(OriStr)){          
           OutPut += GetPersonalWithMask(OriStr.split('@')[0], oPrefix) + "@";
           var splitstr = OriStr.split('@')[1];      
           for (var i = 0; i < splitstr.split('.').length; i++)
           {                    
               var oStrL = splitstr.split('.')[i];            
               if (i == 0)
                   OutPut += GetPersonalWithMask(oStrL, oPrefix);
               else
                   OutPut += '.' + GetPersonalWithMask(oStrL, oPrefix);
           }      
           return OutPut;
       }
   }
   
   $.each( arr, function(index , value) {        
       if(jQuery.inArray(index , arrMatch) >= 0)
           OutPut+= value;
       else
           OutPut+= oPrefix;
   });
   return OutPut;    
};



$('body').append(GetPersonalWithMask("a90sd@yahoo.com.tw","*")+'<br/>');
$('body').append(GetPersonalWithMask("a90sd","*")+'<br/>');
$('body').append(GetPersonalWithMask("0915123123","*")+'<br/>');