javascriptで独自の翻訳機能を構築したいと思います。今、私は、HTML文字列を取り、私のルックアップ機能でそれを変換する関数を記述したいと思いjavascript regexを使用してhtmlを翻訳する
var frenchHello = language.lookup('hello') //'bonjour'
: は、私はすでに単語や表現を変換する関数language.lookup(キー)を持っています。 html文字列では、この単語が翻訳されるべきであることを指摘する#[translationkey]のような特殊な構文があります。
これは私が望む結果である:
var html = '<div><span>#[hello]</span><span>#[sir]</span>'
language.translate(html) //'<div><span>bonjour</span><span>monsieur</span>
にはどうすればlanguage.translateを書きますか? 私の考えは正規表現で私の特別な構文を除外し、各キーでlanguage.lookupを実行することです。たぶん、文字列の置換または何か。
私は正規表現になると私は吸うと私は非常に不完全な例を考え出したが、とにかくそれを含めるので、誰かが私がしようとしているもののアイデアを得るかもしれない。その後、歓迎よりも優れているが完全ではあるが解決策があれば。
var value = "#[hello], nice to see you.";
lookup = function(word){
return "bonjour";
};
var res = new RegExp("\\b(hello)\\b", "gi").exec(value)
for (var c1 = 0; c1 < res.length; c1++){
value = value.replace(res[c1], lookup(res[c1]))
}
alert(value) //#[bonjour], nice to see you.
正規表現はもちろん、言葉ハローが、構文をフィルタリングして、グループ化または類似してキーを収集してはなりません。
誰でも手助けできますか?閉じ角括弧が続く閉じ角括弧を含まないゼロ以上の文字が続くオープニング角括弧が続くハッシュと一致
#\\[[^\\]]*\\]
、:
はい、このサーバー側を行う方が良いです。そうでなければ、クライアントに2つの言語、つまり置き換えられる言語がロードされます。 – Spoike
私はそれがあなたの提案に対応することができないので、完全な実行可能な例への答えを編集してください。 – John
人、使用しますか?修飾語。シンプルな倹約的な修飾語句の代わりに「含まない」という言葉が見えるたびに、私の目は痛みを吐きます。 –