第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript - 如何通過在輸入中鍵入三個(或更多)字母來呈現(xiàn)輸出?

Javascript - 如何通過在輸入中鍵入三個(或更多)字母來呈現(xiàn)輸出?

紅顏莎娜 2022-12-02 16:30:39
我正在制作一個 html 頁面,它是一個外國腳本的類型。我的進步:這里這是整個 javascript:function getReplacedText(latinText) {            if (!latinText) {                return "";        }            var replacedText = "";            for (var i = 0, len = latinText.length; i < len; i++) {                var curLetter = latinText[i];                var pos1Txt = latinText[i + 1];                var pos2Txt = latinText[i + 2];                if (!(curLetter == "")) {                    var dualLetter = latreplaced[curLetter + pos1Txt];                    if (dualLetter) {                        replacedText += dualLetter;                        i++;                        continue;                    }                }                replacedText += latreplaced[curLetter] || curLetter;            }            return replacedText;        }                     var latreplaced = {"u":"う","ku":"く","tsu":"つ",        };        function onLatinTextChange(txt) {            var replacedTextareaElem = document.getElementById("replaced_textarea");            var div = document.createElement("div");            var replacedHtmlEntities = getReplacedText(txt);            div.innerHTML = replacedHtmlEntities;            replacedTextareaElem.value = div.innerText;        }該項目的目的是創(chuàng)建一個虛擬注音鍵盤,僅使用拉丁字母來鍵入某些外國腳本,而無需安裝其鍵盤設(shè)置?;旧?,如果您在 input 中輸入一個字母表<textarea>,它會呈現(xiàn)相應(yīng)的外國字母表。(例如,輸入'u' > 輸出'う',輸入'ku' > 輸出'く')這是我的問題:到目前為止,當(dāng)在輸入框中輸入一個或兩個字母表時,我已經(jīng)啟用了渲染輸出。但是我不知道如何通過輸入三個字母來啟用它。(例如,輸入'tsu' > 輸出'つ')"u":"う", // <- can convert"ku":"く", // <- can convert"tsu":"つ", // <- cannot convert!在 javascript 代碼中,有一個var名為dualLetter,由以下腳本執(zhí)行:var dualLetter = latreplaced[curLetter + pos1Txt];如何編輯這部分代碼(或整個 javascript)以轉(zhuǎn)換3 個或更多輸入字母?我需要制作var tripleLetter或創(chuàng)建一個全新的系統(tǒng)嗎?任何替代方法也會有所幫助。
查看完整描述

1 回答

?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗 獲得超8個贊

受您的代碼啟發(fā)的解決方案:

我更改了主要功能,但這絕對有效

現(xiàn)場演示:https ://jsfiddle.net/alias_gui3/wds426mq/12/

源代碼 :


  var dictionnary = {

    "u":"う",

    "ku":"く",

    "tsu":"つ",

    

    "test for spaces": "??"

  };

  

  var maxLength = Object.keys(dictionnary)

    .reduce((a, b) => a.length > b.length ? a : b) // get the longest word

    .length; // and it's length

  

  function translate (text) {

    var translated = "";

    var cur = 0;

    while (cur < text.length) {

      var testedPhoneme;

      var symbol = undefined;

      for (var length = maxLength; length > 0; length --) {

        testedPhoneme = text.substr(cur, length);

        if (dictionnary[testedPhoneme]) {

          symbol = dictionnary[testedPhoneme];

          break; // stop the loop

        }

      }

      if (symbol) {

        translated += symbol;

        cur += testedPhoneme.length;

      }

      else {

        translated += text[cur]

        cur++;

      }

    }

    return translated

  }


  function onLatinTextChange(txt) {

    var replacedTextareaElem = document.getElementById("replaced_textarea");

    var div = document.createElement("div");

    var replacedHtmlEntities = translate(txt);

    div.innerHTML = replacedHtmlEntities;

    replacedTextareaElem.value = div.innerText;

  }

[上一篇] 一個簡單的解決方案:

我建議您使用空格拆分文本


如果我理解得很好,你想輸入u ku tsuget うくつ,而不是get ukutsu,如果這是正確的,那么類似的東西就可以工作:


const dictionnary = {

  "u": "う",

  "ku": "く",

  "tsu": "つ"


var phonemes = text.split(' ') // split text by spaces

var translatedArray = phonemes.map(function (phoneme) {

  return dictionnary[phoneme] || phoneme 

  // will return the latin phoneme if it is not in the dictionnary

})

translatedString = translatedArray.join('')


查看完整回答
反對 回復(fù) 2022-12-02
  • 1 回答
  • 0 關(guān)注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號