【问题标题】:javascript consonants to lowercase小写的javascript辅音
【发布时间】:2016-09-30 16:54:37
【问题描述】:

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

它接收一个包含数字和字母的数组,并以小写辅音返回它。数字保持不变 示例:consonantstoLowerCase([1,5,7,'a','J','p','E']) 返回[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

提前致谢!

【问题讨论】:

  • 您只是在 reg exp 中寻找小写字母。 a 不匹配 A
  • 要使正则表达式不区分大小写,请添加i,例如:/[bcdfghjklmnpqrstvwxyz]/ig,但您应该只查找大写辅音,/[BCDFGHJKLMNPQRSTVWXYZ]/g
  • 另外,您返回的是逗号分隔的字符串,而不是请求的数组。您需要再次.split(","),但是当您传递逗号时这会中断。如果项目是大写字母,您可能应该使用array.map() 并在那里执行替换。
  • 你是忘记了A还是故意的?
  • @Titus 回答 /ig 工作

标签: javascript lowercase


【解决方案1】:

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)
	
}

【讨论】:

  • 为什么要对给出正确答案的代码投反对票?只需测试 sn-p ;)
【解决方案2】:

要获得所需的数组,只需映射值,检查它们是否匹配辅音,如果匹配,则返回 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));

【讨论】:

    【解决方案3】:

    应该这样做:

    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);

    【讨论】:

    • 与你之前添加最后一个 ig 的答案有什么不同:/[bcdfghjklmnpqrstvwxyz]/ig 我认为它更干,不是吗?
    • @Defoe 您只需要修改大写辅音,因此无需查找小写辅音,因为它们应该保持不变。此外,此示例返回 Array 而不是 String
    • 好吧,实际上这是练习的一部分。我自己做了元音部分,但整个练习是这样的://它接收一个包含数字和字母的数组,并以大写元音和小写辅音返回它。数字保持不变 //示例:beautifyLetters([1,5,7,'a','J','p','E']) 返回 [1,5,7,'A','j',p ,'E'] 如何将它们组合在一起?
    • 我不知道如何编辑您的答案,但它给出了错误意外令牌 ) 因为它需要是 });在最后。尽管如此,它还是很有魅力,非常感谢!
    • 您可以自己编辑它,以便我可以单击对勾图标吗?谢谢
    猜你喜欢
    • 2020-10-30
    • 1970-01-01
    • 2018-08-20
    • 2011-04-10
    • 2020-05-16
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多