JavaScript:希伯来字母作为关联数组的键不起作用

问题描述 投票:0回答:1

我有一个符号数组:

pSymbols={"0":122,"1":76,"2":124,"3":122,"4":128,"5":124,"6":122,"7":120,"8":122,"9":122,"a":124,"á":124,"Á":168,"A":168,"â":124,"Â":168,"à":124,"À":168,"&":152,"ã":124,"Ã":168,"@":226,"ä":124,"Ä":168,"b":118,"\\":78,"B":138,"c":118,"C":160,":":38,",":38,"d":118,"-":76,"D":150,"$":122,".":38,"\"":74,"e":124,"é":124,"É":136,"E":136,"ê":124,"Ê":136,"è":124,"È":136,"=":124,"ë":124,"Ë":136,"!":40,"^":110,"f":84,"F":126,"/":78,"g":120,"G":166,"h":112,"H":144,"i":36,"í":56,"Í":56,"I":36,"î":90,"Î":90,"ì":56,"Ì":56,"ï":70,"Ï":70,"j":60,"J":104,"k":114,"K":150,"l":36,"L":118,"(":68,"{":80,"[":60,"<":124,"m":176,"M":172,">":124,"ь":112,"Ь":138,"n":112,"N":144,"ñ":112,"Ñ":144,"o":126,"ó":126,"Ó":172,"O":172,"ô":126,"Ô":172,"ò":126,"Ò":172,"õ":126,"Õ":172,"ö":126,"Ö":172,"p":118,"P":140,"%":190,"+":124,"q":118,"Q":174,"?":120,"\'":38,"r":80,"а":124,"А":168,"б":126,"Б":138,"ц":124,"Ц":158,"ч":112,"Ч":140,"д":142,"Д":162,"э":118,"Э":160,"ф":186,"Ф":170,"г":84,"Г":120,"х":126,"Х":164,"и":112,"И":144,"й":112,"Й":144,"ж":168,"Ж":224,"к":102,"К":130,"л":130,"Л":146,"м":140,"М":172,"н":110,"Н":144,"о":126,"О":172,"п":108,"П":144,"р":118,"Р":140,"с":118,"С":160,"ш":168,"Ш":188,"щ":180,"Щ":204,"т":112,"Т":144,"у":124,"У":158,"в":112,"В":138,"ы":148,"я":120,"Я":158,"Ы":180,"е":124,"Е":136,"ё":124,"Ё":136,"ю":162,"Ю":216,"з":106,"З":134,"R":160,")":68,"}":80,"]":60,"s":114,"S":144,";":38,"#":136,"*":88,"t":72,"T":144,"~":130,"ъ":146,"Ъ":188,"u":112,"ú":112,"Ú":144,"U":144,"û":112,"Û":144,"ù":112,"Ù":144,"_":148,"ü":112,"Ü":144,"v":124,"V":164,"w":178,"W":226,"x":126,"X":164,"y":124,"ý":124,"Ý":166,"Y":166,"ÿ":124,"Ÿ":166,"z":120,"Z":144," ":120,"Æ":230,"æ":202,"Å":168,"å":124,"Ç":160,"ç":118,"Ð":168,"ð":124,"Ø":174,"ø":126,"ß":130,"Þ":140,"þ":118,"א‬":126,"בּ‬":128,"ב‬":128,"ג‬":94,"ד‬":122,"ה‬":120,"ו‬":36,"ז‬":86,"ח‬":118,"ט‬":120,"י‬":36,"כּ‬":102,"כ‬":102,"ךּ‬":110,"ך‬":110,"ל‬":102,"מ‬":128,"ם‬":118,"נ‬":72,"ן‬":36,"ס‬":126,"ע‬":118,"פּ‬":116,"פ‬":116,"ף‬":116,"צ‬":110,"ץ‬":108,"ק‬":112,"ר‬":110,"שׁ‬":152,"שׂ‬":152,"תּ‬":142,"ת‬":142,"ש":152};

[在它的最后,您可以看到希伯来字母(以防万一:由于字体方向相反,它看起来像希伯来字母是一个值,而实际上是一个数组键)。

我想做的是将输入中的文本拆分为符号,并从pSymbols数组中获取相应的值。我已经尝试了两种方法(基本上是同一件事),但都没有用:

<input type="text" value="" id="myinput" />

<script>
var splitText=$('#myinput').val().split('');

//method 1
console.log(pSymbols[splitText[0]]);

//method 2
$.each(pSymbols, function(key, value){
 if(key == splitText[0]){
  console.log(value)
 }
})

</script>

我正在尝试的字符串是םלועםולש

javascript associative-array hebrew
1个回答
0
投票

希伯来语pSymbols键通常带有另一个(不可见)字符(共33个出现):U+202C

在某些情况下,标点符号还带有希伯来语字符(7例):

因此,许多键不是单个字符。我已经清理了U + 202C字符的那些键。

我还修改了代码以在输入字符串中发现这种标点符号,在这种情况下,在进行查找之前将其与主字符一起使用:

// This object has been stripped of the U+202C character:
let pSymbols={"0":122,"1":76,"2":124,"3":122,"4":128,"5":124,"6":122,"7":120,"8":122,"9":122,"a":124,"á":124,"Á":168,"A":168,"â":124,"Â":168,"à":124,"À":168,"&":152,"ã":124,"Ã":168,"@":226,"ä":124,"Ä":168,"b":118,"\\":78,"B":138,"c":118,"C":160,":":38,",":38,"d":118,"-":76,"D":150,"$":122,".":38,"\"":74,"e":124,"é":124,"É":136,"E":136,"ê":124,"Ê":136,"è":124,"È":136,"=":124,"ë":124,"Ë":136,"!":40,"^":110,"f":84,"F":126,"/":78,"g":120,"G":166,"h":112,"H":144,"i":36,"í":56,"Í":56,"I":36,"î":90,"Î":90,"ì":56,"Ì":56,"ï":70,"Ï":70,"j":60,"J":104,"k":114,"K":150,"l":36,"L":118,"(":68,"{":80,"[":60,"<":124,"m":176,"M":172,">":124,"ь":112,"Ь":138,"n":112,"N":144,"ñ":112,"Ñ":144,"o":126,"ó":126,"Ó":172,"O":172,"ô":126,"Ô":172,"ò":126,"Ò":172,"õ":126,"Õ":172,"ö":126,"Ö":172,"p":118,"P":140,"%":190,"+":124,"q":118,"Q":174,"?":120,"\'":38,"r":80,"а":124,"А":168,"б":126,"Б":138,"ц":124,"Ц":158,"ч":112,"Ч":140,"д":142,"Д":162,"э":118,"Э":160,"ф":186,"Ф":170,"г":84,"Г":120,"х":126,"Х":164,"и":112,"И":144,"й":112,"Й":144,"ж":168,"Ж":224,"к":102,"К":130,"л":130,"Л":146,"м":140,"М":172,"н":110,"Н":144,"о":126,"О":172,"п":108,"П":144,"р":118,"Р":140,"с":118,"С":160,"ш":168,"Ш":188,"щ":180,"Щ":204,"т":112,"Т":144,"у":124,"У":158,"в":112,"В":138,"ы":148,"я":120,"Я":158,"Ы":180,"е":124,"Е":136,"ё":124,"Ё":136,"ю":162,"Ю":216,"з":106,"З":134,"R":160,")":68,"}":80,"]":60,"s":114,"S":144,";":38,"#":136,"*":88,"t":72,"T":144,"~":130,"ъ":146,"Ъ":188,"u":112,"ú":112,"Ú":144,"U":144,"û":112,"Û":144,"ù":112,"Ù":144,"_":148,"ü":112,"Ü":144,"v":124,"V":164,"w":178,"W":226,"x":126,"X":164,"y":124,"ý":124,"Ý":166,"Y":166,"ÿ":124,"Ÿ":166,"z":120,"Z":144," ":120,"Æ":230,"æ":202,"Å":168,"å":124,"Ç":160,"ç":118,"Ð":168,"ð":124,"Ø":174,"ø":126,"ß":130,"Þ":140,"þ":118,"א":126,"בּ":128,"ב":128,"ג":94,"ד":122,"ה":120,"ו":36,"ז":86,"ח":118,"ט":120,"י":36,"כּ":102,"כ":102,"ךּ":110,"ך":110,"ל":102,"מ":128,"ם":118,"נ":72,"ן":36,"ס":126,"ע":118,"פּ":116,"פ":116,"ף":116,"צ":110,"ץ":108,"ק":112,"ר":110,"שׁ":152,"שׂ":152,"תּ":142,"ת":142,"ש":152};

// Sample input -- I added one more character with punctuation
//   (Sorry for making a mess of Hebrew -- I don't know it)
let val ="םלוע םולששׂ";

// Use a regular expression that will capture punctuation 
//   together with the main character it applies to:
for (let ch of val.match(/.[\u05BC\u05C1\u05C2]?/gu)) {
    console.log(ch, pSymbols[ch]);
}
© www.soinside.com 2019 - 2024. All rights reserved.