22

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

有任何想法吗?

4

5 回答 5

32

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

于 2010-01-11T12:54:29.133 回答
23

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

/[\u0590-\u05FF]/

这将匹配单个希伯来字符。

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

于 2010-01-11T12:58:57.903 回答
14

    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">

于 2014-05-13T08:20:29.510 回答
4

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

于 2010-01-11T12:54:33.020 回答
0

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

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

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

于 2017-04-13T11:19:38.853 回答