簡體   English   中英

為什么 blogspot 在 JS 上返回 false 結果?

[英]Why does blogspot return false result on JS?

這是一個僧伽羅音譯轉換器 它返回錯誤的輸出。 例如:如果我輸入m ,它必須返回ම් ,但它重新運行ම් . 我不知道為什么它會提供額外的් 相同的代碼在codepen 中運行良好,但在 Blogspot 中不運行。

JS是

vowelsUni[0]='ඌ'; vowels[0]='oo'; vowelModifiersUni[0]='ූ'; vowelsUni[1]='ඕ'; vowels[1]='o\\\\)'; vowelModifiersUni[1]='ෝ'; vowelsUni[2]='ඕ'; vowels[2]='oe'; vowelModifiersUni[2]='ෝ'; vowelsUni[3]='ආ'; vowels[3]='aa'; vowelModifiersUni[3]='ා'; vowelsUni[4]='ආ'; vowels[4]='a\\\\)'; vowelModifiersUni[4]='ා'; vowelsUni[5]='ඈ'; vowels[5]='Aa'; vowelModifiersUni[5]='ෑ'; vowelsUni[6]='ඈ'; vowels[6]='A\\\\)'; vowelModifiersUni[6]='ෑ'; vowelsUni[7]='ඈ'; vowels[7]='ae'; vowelModifiersUni[7]='ෑ'; vowelsUni[8]='ඊ'; vowels[8]='ii'; vowelModifiersUni[8]='ී'; vowelsUni[9]='ඊ'; vowels[9]='i\\\\)'; vowelModifiersUni[9]='ී'; vowelsUni[10]='ඊ'; vowels[10]='ie'; vowelModifiersUni[10]='ී'; vowelsUni[11]='ඊ'; vowels[11]='ee'; vowelModifiersUni[11]='ී'; vowelsUni[12]='ඒ'; vowels[12]='ea'; vowelModifiersUni[12]='ේ'; vowelsUni[13]='ඒ'; vowels[13]='e\\\\)'; vowelModifiersUni[13]='ේ'; vowelsUni[14]='ඒ'; vowels[14]='ei'; vowelModifiersUni[14]='ේ'; vowelsUni[15]='ඌ'; vowels[15]='uu'; vowelModifiersUni[15]='ූ'; vowelsUni[16]='ඌ'; vowels[16]='u\\\\)'; vowelModifiersUni[16]='ූ'; vowelsUni[17]='ඖ'; vowels[17]='au'; vowelModifiersUni[17]='ෞ'; vowelsUni[18]='ඇ'; vowels[18]='/\\a'; vowelModifiersUni[18]='ැ'; vowelsUni[19]='අ'; vowels[19]='a'; vowelModifiersUni[19]=''; vowelsUni[20]='ඇ'; vowels[20]='A'; vowelModifiersUni[20]='ැ'; vowelsUni[21]='ඉ'; vowels[21]='i'; vowelModifiersUni[21]='ි'; vowelsUni[22]='එ'; vowels[22]='e'; vowelModifiersUni[22]='ෙ'; vowelsUni[23]='උ'; vowels[23]='u'; vowelModifiersUni[23]='ු'; vowelsUni[24]='ඔ'; vowels[24]='o'; vowelModifiersUni[24]='ො'; vowelsUni[25]='ඓ'; vowels[25]='I'; vowelModifiersUni[25]='ෛ'; nVowels=26; specialConsonantsUni[0]='ං'; specialConsonants[0]=/\\\\n/g; specialConsonantsUni[1]='ඃ'; specialConsonants[1]=/\\\\h/g; specialConsonantsUni[2]='ඞ'; specialConsonants[2]=/\\\\N/g; specialConsonantsUni[3]='ඍ'; specialConsonants[3]=/\\\\R/g; //special characher Repaya specialConsonantsUni[4]='ර්'+'\‍'; specialConsonants[4]=/R/g; specialConsonantsUni[5]='ර්'+'\‍'; specialConsonants[5]=/\\\\r/g; consonantsUni[0]='ඬ'; consonants[0]='nnd'; consonantsUni[1]='ඳ'; consonants[1]='nndh'; consonantsUni[2]='ඟ'; consonants[2]='nng'; consonantsUni[3]='ථ'; consonants[3]='Th'; consonantsUni[4]='ධ'; consonants[4]='Dh'; consonantsUni[5]='ඝ'; consonants[5]='gh'; consonantsUni[6]='ඡ'; consonants[6]='Ch'; consonantsUni[7]='ඵ'; consonants[7]='ph'; consonantsUni[8]='භ'; consonants[8]='bh'; consonantsUni[9]='ශ'; consonants[9]='sh'; consonantsUni[10]='ෂ'; consonants[10]='Sh'; consonantsUni[11]='ඥ'; consonants[11]='GN'; consonantsUni[12]='ඤ'; consonants[12]='KN'; consonantsUni[13]='ළු'; consonants[13]='Lu'; consonantsUni[14]='ද'; consonants[14]='dh'; consonantsUni[15]='ච'; consonants[15]='ch'; consonantsUni[16]='ඛ'; consonants[16]='kh'; consonantsUni[17]='ත'; consonants[17]='th'; consonantsUni[18]='ට'; consonants[18]='t'; consonantsUni[19]='ක'; consonants[19]='k'; consonantsUni[20]='ඩ'; consonants[20]='d'; consonantsUni[21]='න'; consonants[21]='n'; consonantsUni[22]='ප'; consonants[22]='p'; consonantsUni[23]='බ'; consonants[23]='b'; consonantsUni[24]='ම'; consonants[24]='m'; consonantsUni[25]='‍ය'; consonants[25]='\\\\' + 'y'; consonantsUni[26]='‍ය'; consonants[26]='Y'; consonantsUni[27]='ය'; consonants[27]='y'; consonantsUni[28]='ජ'; consonants[28]='j'; consonantsUni[29]='ල'; consonants[29]='l'; consonantsUni[30]='ව'; consonants[30]='v'; consonantsUni[31]='ව'; consonants[31]='w'; consonantsUni[32]='ස'; consonants[32]='s'; consonantsUni[33]='හ'; consonants[33]='h'; consonantsUni[34]='ණ'; consonants[34]='N'; consonantsUni[35]='ළ'; consonants[35]='L'; consonantsUni[36]='ඛ'; consonants[36]='K'; consonantsUni[37]='ඝ'; consonants[37]='G'; consonantsUni[38]='ඨ'; consonants[38]='T'; consonantsUni[39]='ඪ'; consonants[39]='D'; consonantsUni[40]='ඵ'; consonants[40]='P'; consonantsUni[41]='ඹ'; consonants[41]='B'; consonantsUni[42]='ෆ'; consonants[42]='f'; consonantsUni[43]='ඣ'; consonants[43]='q'; consonantsUni[44]='ග'; consonants[44]='g'; //last because we need to ommit this in dealing with Rakaransha consonantsUni[45]='ර'; consonants[45]='r'; specialCharUni[0]='ෲ'; specialChar[0]='ruu'; specialCharUni[1]='ෘ'; specialChar[1]='ru'; //specialCharUni[2]='්‍ර'; specialChar[2]='ra'; 函數 startText() { var s,r,v; text = document.txtBox.box1.value; // 特殊輔音 for (var i=0; i //consonents + HAL for (var i=0; i<consonants.length; i++){ r = new RegExp(consonants[i], "g"); text = text.replace(r, consonantsUni[i]+"්"); } //vowels for (var i=0; i<vowels.length; i++){ r = new RegExp(vowels[i], "g"); text = text.replace(r, vowelsUni[i]); } document.txtBox.box2.value=text; } // 結束 -->
<body onload="javascript:txtBox.box1.focus();">
<table width="100%" border="0"><form name="txtBox" id="txtBox">
                          <tr>
                            <td>
                            <em>Input</em></td>
                          </tr>
                          <tr>
                            <td width="100%"><textarea onkeyup="startText();" onselect="startText();" onclick="startText();" style="font-size: 12pt; width: 100%;" name="box1" rows="8"></textarea>
                        </td>
                          </tr>
                          <tr>
                            <td><input type="reset" value="Reset" style="position: relative; center: width: 100px;"></td>
                          </tr>
                          <tr>
                            <td><em>Sinhala Unicode</em></td>
                          </tr>
                          <tr>
                            <td><textarea name="box2" rows="8" readonly="readonly" style="font-size: 14pt; font-family: Potha, Malithi Web , Arial Unicode MS; width: 100%;"></textarea></td>

                          </tr>

                          </form>
                        </table>
                        <p><strong>

</body>

請檢查兩個鏈接; 一個在 blogspot 上,另一個在 codepen 上。 上面第 1 段中給出了兩個鏈接。

for (var i=0; i<consonants.length; i++){
    r = new RegExp(consonants[i], "g");
    text = text.replace(r, consonantsUni[i]+"්");
}

問題出在 for 循環末尾的“්”處。 瀏覽器將此表情符號轉換為字符實體代碼(在本例中它是&#3530; <-- 如果我不是在代碼塊中輸入它,් 就是它的樣子)。

這可以通過使用 Javascript 中的String.fromCharCode()方法來解決。 這是您應該使用的:

for (var i=0; i<consonants.length; i++){
    r = new RegExp(consonants[i], "g");
    text = text.replace(r, consonantsUni[i] + String.fromCharCode(3530));
}

我希望這有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM