不是'翻译'串正确吗?

时间:2014-09-13 18:22:33

标签: javascript jquery

在下面的代码中,我尝试创建一个简单的"翻译器"在制作语言和英语之间。如果它正常工作,请致电 translate.toEnglish("hopeloplopo")将返回hello 致电translate.toLanguage("hello")将返回hopeloplopo

基本上,我希望它用字母+ op替换每个非元音,反之亦然to toEnglish

这是目前发生的事情: translate.toLanguage("hello")返回 "OPello" translate.toEnglish("hopeloplopo")返回undefined

请帮助,谢谢!

var vowels = ['a', 'e', 'i', 'o', 'u']
var translate = {
    toEnglish:function(words) {
        function strip(text) {
            text = text.replace("OP", "").replace("op", "");
            if (text.toLowerCase().indexOf("op") >= 0) strip(text)
            else return text;
        }
        if (words.toLowerCase().indexOf("op") >= 0) strip(words)
        else return words;
    },
    toLanguage:function(words) {
        for (var i=0;i<words.length; i++) {
            if ($.inArray(words[i], vowels)<0) {
                var split = words.split(words[i]).join("OP");
                return split;
            }
            else {
                return words;
            }
        }
    },
}

1 个答案:

答案 0 :(得分:1)

我不确定你的问题是什么,所以我只是写了我怎么做你所描述的

var translate = (function () {
    function toEnglish(str) {
        return str.replace(/(?=[a-z])([^aeiou])op/gi, '$1');
    }
    function toLanguage(str) {
        return str.replace(/(?=[a-z])([^aeiou])/gi, function ($0, $1) {
            return $1 + ($1 === $1.toUpperCase() ? 'OP' : 'op');
        });
    }
    return {
        toEnglish: toEnglish,
        toLanguage: toLanguage
    };
}());

然后

translate.toLanguage('Hello');      // "HOPeloplopo"
translate.toEnglish('HOPeloplopo'); // "Hello"