Javascript 在字符串实践中修改字符

Javascript 在字符串实践中修改字符,javascript,regex,replace,Javascript,Regex,Replace,这是一个非常棒的网站 大约两周前,我就开始阅读和练习Javascript了。我在CodeAcademy完成JS课程后发现了一个名为的网站。我正在努力练习其中一种方法。我的代码使用控制台或JSFIDLE工作,我想知道为什么不工作。另外,我知道这个代码有点狡猾,你们能给我一些建议吗 谢谢 声明: 创建一个名为encode()的函数,根据以下模式将给定字符串中的所有小写元音替换为数字: a->1,e->2,i->3,o->4,u->5 函数编码(word){ var repa=/a/gi; var

这是一个非常棒的网站

大约两周前,我就开始阅读和练习Javascript了。我在CodeAcademy完成JS课程后发现了一个名为的网站。我正在努力练习其中一种方法。我的代码使用控制台或JSFIDLE工作,我想知道为什么不工作。另外,我知道这个代码有点狡猾,你们能给我一些建议吗

谢谢

声明:

创建一个名为encode()的函数,根据以下模式将给定字符串中的所有小写元音替换为数字:

a->1,e->2,i->3,o->4,u->5

函数编码(word){
var repa=/a/gi;
var repe=/e/gi;
变量repi=/i/gi;
var repo=/o/gi;
var repu=/u/gi;
word=word.toLowerCase();
len=单词长度;
对于(i=0;i

谢谢你们的时间,伙计们。

所以我编辑了你们的小提琴,它似乎工作得很好

您只是没有调用函数或打印结果

我添加了自己的fiddle,它只调用函数并提醒值:

function encode(word) {
    var repa = /a/gi;
    var repe = /e/gi;
    var repi = /i/gi;
    var repo = /o/gi;
    var repu = /u/gi;

    word = word.toLowerCase();
    len = word.length;
    for (i = 0; i < len; i++) {
        if (word[i] === 'a') {
            word = word.replace(repa, '1');
        } else if (word[i] === 'e') {
            word = word.replace(repe, '2');
        } else if (word[i] === 'i') {
            word = word.replace(repi, '3');
        } else if (word[i] === 'o') {
            word = word.replace(repo, '4');
        } else if (word[i] === 'u') {
            word = word.replace(repu, '5');
        }
    }
    return word;
}

alert(encode('aeiou'));
函数编码(word){
var repa=/a/gi;
var repe=/e/gi;
变量repi=/i/gi;
var repo=/o/gi;
var repu=/u/gi;
word=word.toLowerCase();
len=单词长度;
对于(i=0;i

要想变得更聪明一点,但不是太聪明,你可以这样做:

function encode(word) {

    var letterArray = {a:1,e:2,i:3,o:4,u:5};

    word = word.toLowerCase();
    len = word.length;
    for (i = 0; i < len; i++) {

     var re = new RegExp(word[i], "gi");
     word = word.replace(re, letterArray[word[i]]);

    }
    return word;
}

alert(encode('aeiou'));
函数编码(word){
var-letterArray={a:1,e:2,i:3,o:4,u:5};
word=word.toLowerCase();
len=单词长度;
对于(i=0;i

您如何知道它不起作用?您是否收到任何错误消息?如何在页面中调用encode()函数?str.replace(/([aeiou])/g,函数(j,a){return{a:1,e:2,i:3,o:4,u:5}[a]}@DanielSanchez页面上说的是“测试未通过:未知错误”,我这样调用函数:encode(“某物”);我不知道这是否意味着我必须以另一种方式完成挑战,或者这只是我的代码,糟糕透了还是什么!“非常感谢,”罗尔说。现在我知道我的代码是有效的。这只是网站的一个问题。你在那里取得了惊人的进步,我真的很感激。:)非常高兴,劳拉,用Javascript玩得开心吧!:)
function encode(word) {

    var letterArray = {a:1,e:2,i:3,o:4,u:5};

    word = word.toLowerCase();
    len = word.length;
    for (i = 0; i < len; i++) {

     var re = new RegExp(word[i], "gi");
     word = word.replace(re, letterArray[word[i]]);

    }
    return word;
}

alert(encode('aeiou'));