正则表达式不允许数字-只允许阿拉伯字母。

17

我找到了这个针对阿拉伯字母的正则表达式,但它也允许数字和字母混合。如何修改它以只允许字母?

/[\u0600-\u06FF]/
5个回答

30

可能需要检查数字所匹配的范围并将其排除(在方括号表达式中正式不包括)。

这里我找到了另一个有用的来源。

我建议仅对字母使用此方法。

/[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]/

因为这只匹配阿拉伯数字

/[\u0660-\u0669\u06F0-\u06F9]/

编辑:

我发现Unicode中有两个阿拉伯和阿拉伯数字的范围。

如果你需要一个正则表达式来匹配一个包含阿拉伯字母和数字的行 - 使用这个:

/^[\u0600-\u06FF]*$/

如果您想防止使用阿拉伯数字 - 可以使用以下代码:

/^[\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]*$/
如果你想匹配一个子字符串而不仅仅是整行,可以使用以下方法:
/\b[\s\u0600-\u065F\u066A-\u06EF\u06FA-\u06FF]*\b/

谢谢,但这也将包括数字0-9。 - Noon
我非常确定,在范围u0600-u06ff中,我们使用的阿拉伯数字0-9没有西化。您可以在此处进行检查:http://www.alanwood.net/unicode/arabic.html。也许您想要的是一个正则表达式,它不允许包含数字的行。给我更多上下文,这样我才能帮助您。 - Krzysztof Jabłoński
非常感谢!是的,您说得对,我不想要任何数字,甚至英文数字。我只想让正则表达式允许阿拉伯字符串。 - Noon
非常感谢您!我真的很感激您详细的回答。 - Noon
所有提到的正则表达式也会选择英文/拉丁字母。如何排除拉丁字符? - Junaid Qadir Shekhanzai

7

我尝试了这里提供的所有解决方案,但没有一个可行,最终只有一个解决方案对阿拉伯字母有效。

^[\u0621-\u064A\040]+$

1
这是解决方案。 - JAHelia

2
[RegularExpression(@"^[\u0621-\u064A\u0660-\u0669a-zA-Z]+$", ErrorMessage = "You can enter Arabic or English characters only")] 

[RegularExpression(@"^[0-9]+$", ErrorMessage = "You can enter numbers only")]

[RegularExpression(@"^[a-zA-Z\0-9]+$",ErrorMessage = "You can enter numbers or english characters only")]

[RegularExpression(@"^[\u0621-\u064A\u0660-\u0669\0-9]+$", ErrorMessage = "You can enter numbers or arabic characters only")]

[RegularExpression(@"^[\u0621-\u064A\u0660-\u0669]+$", ErrorMessage = "You can enter arabic characters only")]

[RegularExpression(@"^[a-zA-Z]+$",ErrorMessage = "You can enter english characters only")]

0

首先,有关Unicode中阿拉伯编码的问题,您可能需要参考这些表格 here

至于您收到的正则表达式[\u0600-\u06FF]是Unicode清单上所有阿拉伯字符的范围,肯定包括字母、控制字符、空格和数字。

我的建议是:

/[\u0600-\u06FF&&[^\U06F0-\06F9]]/

这个包含除阿拉伯数字(0-9)之外的所有内容。

这从“超级”范围中减去了一个范围。我不确定你的目标正则表达式方言是否支持这个。


谢谢,但我遇到了错误:正则表达式无效。字符类范围顺序不正确。 - Noon
只是语法错误。使用:/ [\u0600-\u06FF && [^\u06F0-\u06F9]] / - Solivan

0
我建议仅针对字母、单词和句子使用这个正则表达式:[\sء-ي]+

"[^" 表示该类中的所有字符都是被禁止的。" - Andy A.
哦,抱歉我忘记删除它了。谢谢提醒,@AndyA。 - sebaey mohamed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接