【问题标题】:Javascript - how to find hebrew?Javascript - 如何找到希伯来语?
【发布时间】:2011-01-03 18:04:49
【问题描述】:

我正在尝试查找字符串是否以 RTL 语言/希伯来语开头(第一个字母)宽度。

有什么想法吗?

【问题讨论】:

    标签: javascript regex hebrew right-to-left


    【解决方案1】:

    这将找到在Hebrew Unicode 代码点范围内编码的希伯来字母:[\u0590-\u05FF]

    【讨论】:

    • 以上对我不起作用。有机会举个例子吗?我是 trying this,它返回 false。
    • @hitautodestruct 这可能有点太晚了,但请注意,您的代码示例包含en dash,而不是连字符,- 。这会使您的字符类的范围无效并导致模式不匹配。见corrected example here
    • @Boaz 谢谢!永远不会太晚:-)
    【解决方案2】:

    JavaScript 不支持像 \p{InHebrew}(或类似的东西)这样的正则表达式脚本。但是,它确实支持 Unicode 转义,因此您可以使用如下正则表达式:

    /[\u0590-\u05FF]/
    

    将匹配单个希伯来字符。

    见:http://unicode.org/charts/PDF/U0590.pdf 和:http://www.regular-expressions.info/unicode.html

    【讨论】:

      【解决方案3】:

          function is_heb(Field) {
              // First choose the required validation
      
              HebrewChars = new RegExp("^[\u0590-\u05FF]+$");
              AlphaNumericChars = new RegExp("^[a-zA-Z0-9\-]+$");
              EnglishChars = new RegExp("^[a-zA-Z\-]+$");
              LegalChars = new RegExp("^[a-zA-Z\-\u0590-\u05FF ]+$"); //Note that this one allows space 
      
              // Then use it
      
              if (!LegalChars.test(Field)) {
                  return false;
              } else
                  return true;
          }
      <input id="the_text" type="text" value="בדיקה" />
      <br /><button onclick="document.getElementById('the_result').value = is_heb(document.getElementById('the_text').value)">Is it Hebrew?</button>
      <br /><br />
      Result:
      <br /><input id="the_result" type="text">

      【讨论】:

      • 嗨。这是一个很棒的代码,但我想我把它搞砸了。我正在尝试检查希伯来语字符加空间。 LegalChars 出于某种原因无法正常工作。
      • 嗨,试试这个: LegalChars = new RegExp("^[\u0590-\u05FF ]+$"); | codverter.com/src/webeditor
      【解决方案4】:

      if (str.charCodeAt(0) &gt;= 0x590) &amp;&amp; (str.charCodeAt(0) &lt;= 0x5FF) then 它被认为是一个希伯来字符

      【讨论】:

      • “最有可能”?我会说“肯定”:)
      • 其实在某些情况下它会失败。例如,以数字开头的段落不一定是英文/LTR 段落。
      【解决方案5】:

      特别是对于希伯来语,这个问题已经得到解答 - 关于所有范围:

      特别是对于 JS,我会推荐一个工具来构建您的正则表达式 - 请参阅 Unicode range RegExp generator(编译适合在 JavaScript 中使用的字符范围)

      [只需选择希伯来语或您想要的脚本或范围]

      【讨论】:

        猜你喜欢
        • 2019-11-25
        • 1970-01-01
        • 2017-11-25
        • 1970-01-01
        • 2010-11-06
        • 2018-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多