【问题标题】:Regex to match Hebrew and English characters except numbers正则表达式匹配除数字以外的希伯来语和英语字符
【发布时间】:2014-07-31 19:27:47
【问题描述】:

我有一个问题: 我想用 RegEx 对名字和姓氏进行验证。 我只想用没有数字的希伯来语和英语来做。 有人可以帮我做那个代码吗?

【问题讨论】:

标签: regex validation hebrew


【解决方案1】:

看似希伯来语的范围是\u0590-\u05fe(根据this nice JavaScript Unicode Regex generator`.

/^[a-z\u0590-\u05fe]+$/i

【讨论】:

  • 我们是否应该在字符串的末尾也扔一个$
  • @CaseyFalk 是的。已添加。
  • 它是否适用于“改变方向”的 unicode? (RLM,LRM,\u200f\u200e)。如果用户从希伯来语更改为英语,反之亦然,这可能是一个问题。我的解决方案涵盖了它stackoverflow.com/a/66104183/12695188
【解决方案2】:

虽然选择的关于“希伯来语”的答案是正确的,但 OP 希望将验证限制为仅希伯来语和英语字母。希伯来语 Unicode 添加了许多与此类验证无关的标点符号和符号(如您在 the table here 中所见)。如果您只想要希伯来字母(以及英文字母),则正则表达式将是:

/^[a-z\u05D0-\u05EA]+$/i

我也会考虑添加 '(单引号),因为希伯来语中缺少的外来辅音(例如 George 中的 G 和 Charlie 中的 Ch)将其与字母一起使用:

/^[a-z\u05D0-\u05EA']+$/i

【讨论】:

    【解决方案3】:

    我在我的应用程序中使用了上述正则表达式(关于个人资料详细信息)。我的用户对此很满意:

    RegExp(r'^[a-zA-Z\u0590-\u05FF\u200f\u200e ]+$');
    

    正则表达式支持:

    • 英文字母(包括大写字母)。 a-zA-Z
    • 希伯来语(包括特殊的结尾字母)。 \u0590-\u05FF
    • 更改方向 unicodes (RLM, LRM)。 \u200f\u200e
    • 空白。

    享受吧!

    【讨论】:

      【解决方案4】:

      试试这个。不确定它是否会起作用。如果没有,这些参考资料应该会有所帮助。

      [A-Za-z\u0590-\u05FF]*
      

      Hebrew Unicode

      Unicode in Regular Expressions

      【讨论】:

      • 注意,这匹配空字符串,并不表示字符串的开始(^)或结束($)。
      • 另外,不要发布“不确定它是否会起作用”,只需弹出 JSFiddle/RegExPal 来尝试一下。 ;)
      【解决方案5】:

      只有希伯来字母:

      /^[\u0590-\u05ea]+$/i
      

      【讨论】:

        【解决方案6】:

        您还可以在您的正则表达式中使用\p{Hebrew} 来检测任何希伯来语 unicode 字符(如果您的正则表达式引擎支持它)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多