在希伯来语中搜索希伯来语的标记

时间:2018-05-13 07:37:43

标签: javascript unicode hebrew

我正在尝试通过JavaScript搜索unicode中的希伯来语标记etnachta,u-0591。我输入了以下代码,即使它在那里,我的搜索也是错误的。有什么我可以做的不同让它起作用吗?



const verse = ['וַיֹּ֨אמֶר אַבְרָ֜ם אֶל־ל֗וֹט אַל־נָ֨א תְהִ֤י מְרִיבָה֙ בֵּינִ֣י וּבֵינֶ֔יךָ וּבֵ֥ין רֹעַ֖י וּבֵ֣ין רֹעֶ֑יךָ כִּֽי־אֲנָשִׁ֥ים אַחִ֖ים אֲנָֽחְנוּ'];
if (verse.includes(/^\u0591/)) {
  console.log(true);
} else {
  console.log(false);
}




你可以看到符号在哪里here(创世记13:8)。

我甚至使用了JavaScript escapes,它提出了:

  

' \ u05D5 \ u05B7 \ u05D9 \ u05BC \ u05B5 \ u05A8 \ u05D0 \ u05DE \ u05B6 \ u05E8 \ u05D0 \ u05B7 \ u05D1 \ u05B0 \ u05E8 \ u05B8 \ u059C \ u05DD \ u05D0 \ u05B6 \ u05DC \ u05BE \ u05DC \ u0597 \ u05D5 \ u05B9 \ u05D8 \ u05D0 \ u05B7 \ u05DC \ u05BE \ u05E0 \ u05B8 \ u05A8 \ u05D0 \ u05EA \ u05B0 \ u05D4 \ u05B4 \ u05A4 \ u05D9 \ u05DE \ u05B0 \ u05E8 \ u05B4 \ u05D9 \ u05D1 \ u05B8 \ u05D4 \ u0599 \ u05D1 \ u05D \ u05B5 \ u05D9 \ u05E0 \ u05B4 \ u05A3 \ u05D9 \ u05D5 \ u05BC \ u05D1 \ u05B5 \ u05D9 \ u05E0 \ u05B6 \ u0594 \ u05D9 \ u05DA \ u05B8 \ u05D5 \ u05BC \ u05D1 \ u05B5 \ u05A5 \ u05D9 \ u05DF \ u05A5 \ u05B9 \ u05E2 \ u05B5 \ u05D \ u05D9 \ u05D5 \ u05BC \ u05D1 \ u05B5 \ u05A3 \ u05D9 \ u05DF \ u05E8 \ u05B9 \ u05E2 \ u05B6 \ u0591 \ u05D9 \ u05DA \ u05B8 \ u05DB \ u05BC \ u05B4 \ u05BD \ u05D9 \ u05BE \ u05D0 \ u05B2 \ u05E0 \ u05B8 \ u05E9 \ u05C1 \ u05B4 \ u05A5 \ u05D9 \ u05DD \ u05D0 \ u05B7 \ u05D7 \ u05B4 \ u0596 \ u05D9 \ u05DD \ u05D0 \ u05B2 \ u05E0 \ u05B8 \ u05BD \ u05D7 \ u05B0 \ u05E0 \ u05D5 \ u05BC \ u05C3'

1 个答案:

答案 0 :(得分:1)

你的问题与希伯来语或unicode字符无关,而与你搜索的方式无关。

您可能正在尝试在字符串的数组中找到正则表达式匹配项。如果是这种情况,则搜索不正确。要搜索数组中的正则表达式,Array.include不是您的朋友。您需要使用Array.findIndex()Array.filter()

等内容进行迭代
const verse = ['וַיֹּ֨אמֶר אַבְרָ֜ם אֶל־ל֗וֹט אַחִ֖ים אֲנָֽחְנוּ'];  
if (verse.findIndex( v => v.search(/^\u0591/) ) != -1) ...

如果您希望将正则表达式与简单字符串匹配,则需要删除字符串周围的[]并使用String.search()

 const verse = 'וַיֹּ֨אמֶר אַבְרָ֜ם אֶל־ל֗וֹט אַחִ֖ים אֲנָֽחְנוּ';  
 if (verse.search(/^\u0591/)) ...

最后,如果你想在字符串中找到\u0591,你可以简单地使用String.includes()

const verse = 'וַיֹּ֨אמֶר אַבְרָ֜ם אֶל־ל֗וֹט אַחִ֖ים אֲנָֽחְנוּ';  
if (verse.includes('\u0591')) ...
相关问题