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

oyjwcjzk  于 2023-04-13  发布在  其他
关注(0)|答案(5)|浏览(208)

我发现这个正则表达式是针对阿拉伯字母的,但它也允许数字和字母。我如何改变它,让它只允许字母?

/[\u0600-\u06FF]/
mrphzbgm

mrphzbgm1#

也许你必须检查数字匹配的范围并排除它(正式的不包括在方括号表达式中)。
Here我找到了另一个有用的来源。
我建议只对信件使用这个

/[\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/
rekjcdws

rekjcdws2#

我尝试了这里提供的所有解决方案,都不起作用,最后一个解决方案只对阿拉伯字母起作用

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

wpcxdonn3#

[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")]
kq4fsx7k

kq4fsx7k4#

首先,关于unicode中的阿拉伯语编码,您可能需要参考下面的表here
至于给出的正则表达式,[\u0600-\u06FF]是unicode列表中所有阿拉伯字符的范围,当然包括偶数字母,控制字符,空格和数字。
我的建议是:

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

它只跨越减去阿拉伯数字(0-9)的所有内容。
这会从'super'范围中减去一个范围。我只是不确定你的目标正则表达式方言是否支持这个。

uplii1fm

uplii1fm5#

我建议只对字母,单词和句子[^\sء-ي]+这样做

相关问题