2

翻訳システムを作成しているとしましょう。配列キーで一致したすべての単語を、一致した配列キーの値に置き換えます。

translate =
  saya: "i",
  jalan: "walk",
  hutan: "forest",
  beli: "buy",
  ke: "to",
  apel: "apple",
};

string = "SaYa JaLan ke hutan beli Apel" // case insensitive

そのはず

string = "I walk to forest buy apple" // the translated string

どうすればjavascriptでそれを行うことができますか? 関数内で次のように呼び出すことができます

translated = translate(string) // returns the translated string

4

2 に答える 2

3
function translate(txt) {
    var translate = {
        saya: "i",
        jalan: "walk",
        hutan: "forest",
        beli: "buy",
        ke: "to",
        apel: "apple"
    };

    for (var key in translate) {
        txt = txt.replace(new RegExp(key, "ig"), translate[key]);
    }
    return txt.charAt(0).toUpperCase() + txt.slice(1);  //Capitalize the first
}                                                          // letter.

var translated = translate("SaYa JaLan ke hutan beli Apel");
//"I walk to forest buy apple" 

デモ: http://jsfiddle.net/DerekL/2ucEk/

于 2012-06-29T17:48:51.963 に答える
-1

JS初心者ですが、これでうまくいくと思います。言葉は違えどプロセスは同じ

    lexicon = new Object();
lexicon.merry = "god";
lexicon.christmas = "jul";
lexicon.and = "och";
lexicon.happy = "gott";
lexicon.new = "nytt";
lexicon.year = "ar";

function translate(){

    //use to show translation:
    //have a merry christmas and a fun new year!
    var myString = document.getElementById('input').value;

    myString = myString.replace(/merry/g, lexicon.merry);
    myString = myString.replace(/christmas/g, lexicon.christmas);
    myString = myString.replace(/and/g, lexicon.and);
    myString = myString.replace(/happy/g, lexicon.happy);
    myString = myString.replace(/new/g, lexicon.new);
    myString = myString.replace(/year/g, lexicon.year);

    document.write(myString);
}
于 2012-06-29T17:49:25.100 に答える