限制希伯来语的字数

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

这个公式很棒 使用正则表达式限制响应中的单词数 英语效果很好

但希伯来语可能不太好

有什么需要改变的吗?

我输入了公式 但是当我尝试用希伯来语输入表格时 在第一个单词中已经观察到错误消息(字数限制)

如果是英文的那就太好了

error-handling textbox limit hebrew
1个回答
0
投票

我之前建议过

^(?:\b\w+\b[\s\r\n]*){1,250}$

但是

\b
(单词边界)不适用于正则表达式中的任何非拉丁文字(如希伯来语)。
这是由于它依赖于 Latin 脚本和 ASCII 字符集的特性:
\b
匹配一侧是单词字符 (
\w
) 而另一侧不是单词字符的位置。

对于拉丁文字,

\w
匹配任何字母数字字符(字母和数字)和下划线 (
_
)。但是,这组字符包括希伯来语、阿拉伯语、西里尔语等脚本中的字符。因此,
\b
无法正确识别用希伯来语书写的单词的边界,因为它不将希伯来语字符视为
\w
类别。

要使用其他非拉丁文字(例如希伯来语),您需要定义自己的单词边界,通常是通过直接指定脚本中的字符范围(例如希伯来语的

[\u0590-\u05FF]
)并使用其他方法来定义自己的单词边界。检测单词之间的空格或分隔符。这就是为什么非拉丁脚本中的正则表达式操作需要自定义解决方案。

^(?:[\u0590-\u05FF]+(?:\s+|$)){0,250}$

在为希伯来语文本设计的正则表达式模式

^(?:[\u0590-\u05FF]+(?:\s+|$)){0,250}$
中,单词之间的空格或分隔符的检测由部分
(?:\s+|$)
处理。

© www.soinside.com 2019 - 2024. All rights reserved.