javascript 辅音转小写

javascript consonants to lowercase

大家好,我认为下面的代码应该可以工作,但没有,我也不知道为什么,有什么建议吗?

它接收一个包含数字和字母的数组,returns 它包含小写辅音。数字保持不变 示例:consonantstoLowerCase([1,5,7,'a','J','p','E']) returns [1,5,7,'a','j',p,'E']

function consonantstoLowerCase( array )
{

 var result = array.toString().replace(/[bcdfghjklmnpqrstvwxyz]/g, function (char) 
 {
     return char.toLowerCase();
 });

 console.log(result)
 
}

输出:

consonantstoLowerCase([1,5,7,'a','J','p','E']) => 1,5,7,a,J,p,E

提前致谢!

consonantstoLowerCase([1,5,7,'a','J','p','E','k','m','I'])
function consonantstoLowerCase( array )
{

 var result = array.toString().replace(/[bcdfghjklmnpqrstvwxyz]/ig, function (char) 
 {
     return char.toLowerCase();
 });

 console.log(result)
 
}

要获得您想要的数组,只需映射值,检查它们是否匹配辅音,如果匹配,return 它们 toLowerCase()。 (还要注意匹配器上的 i 修饰符 - 现在我们也在检查大写字母,就像你想要的......)。

啊,因为写起来比较麻烦,所以我检查了人声和数字是否不匹配...

var input = [1,5,7,'a','J','p','E'];

function consonantToLowerCase(arr) {
  var vocals = /[aeiou0-9]/ig;  
  return arr.map(function(e) {
    if (! e.toString().match(vocals)) return e.toLowerCase();
    return e;
  });  
}

console.log(consonantToLowerCase(input));

应该这样做:

var arr = [1,5,7,'a','J','p','E'];
arr = arr.map(e => /[BCDFGHJKLMNPQRSTVWXYZ]/g.test(e) ? e.toLowerCase() : e);
console.log(arr);

针对您的评论,要将辅音改为小写,将元音改为大写,您可以这样做:

var arr = [1,5,7,'a','J','p','E'];
arr = arr.map(function(e){
    e = /[BCDFGHJKLMNPQRSTVWXYZ]/g.test(e) ? e.toLowerCase() : e;
    e = /[aeiou]/g.test(e) ? e.toUpperCase() : e;
    return e;
});
console.log(arr);