正则表达式仅限阿拉伯字符和数字

时间:2015-04-19 11:41:39

标签: regex unicode string-matching

我希望正则表达式只接受阿拉伯字符空格数字

数字不需要是阿拉伯语。

我找到了以下表达式:

^[\u0621-\u064A]+$

只接受阿拉伯字符,而我需要阿拉伯字符,空格和数字。

12 个答案:

答案 0 :(得分:35)

只需将1-9(Unicode格式)添加到您的角色类:

^[\u0621-\u064A0-9 ]+$

或者将\u0660-\u0669添加到range of Arabic numbers

的字符类中
^[\u0621-\u064A\u0660-\u0669 ]+$

答案 1 :(得分:13)

您可以使用:

^[\u0621-\u064A\s\p{N}]+$

\p{N}将匹配任何unicode数字。

仅匹配使用ASCII数字:

^[\u0621-\u064A\s0-9]+$

编辑:最好使用此正则表达式:

^[\p{Arabic}\s\p{N}]+$

RegEx Demo

答案 2 :(得分:10)

你可以用 [ء-ي] 它在javascript Jquery forme.validate rules

中为我工作

对于我的例子,我想强制用户插入3个字符

[A-ZA-Zء-ي]

答案 3 :(得分:6)

使用此

[\u0600-\u06FF]

它在视觉工作室为我工作

enter image description here

答案 4 :(得分:3)

通过大量的尝试和编辑,我得到了波斯名字:

[گچپژیلفقهمو ء-ي]+$

答案 5 :(得分:1)

简单,请使用以下代码:

^[؀-ۿ]+$

这适用于阿拉伯/波斯偶数。

答案 6 :(得分:1)

^[\u0621-\u064Aa-zA-Z\d\-_\s]+$

此正则表达式必须接受阿拉伯字母,英文字母,空格和数字

答案 7 :(得分:0)

function HasArabicCharacters(string text)

{

    var regex = new RegExp(

        "[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]");

    return regex.test(text);
}

答案 8 :(得分:0)

在PHP中,使用:

preg_replace("/\p{Arabic}/u", 'x', 'abc123ابت');// will replace arabic letters with "x".

注意:要使\p{Arabic}匹配阿拉伯字母,您需要在结尾处传递u修饰符(用于unicode)。

答案 9 :(得分:0)

上面的帖子不仅包含阿拉伯语(MSA)字符,还包含波斯语,乌尔都语,古兰经符号和其他一些符号。仅使用阿拉伯语MSA字符(请参见Arabic Unicode

[\u0621-\u063A\u0641-\u0652] 

答案 10 :(得分:0)

要允许在一个字段中使用最小和最大允许字符数的阿拉伯语 + 英语字母,试试这个,100% 测试: ^[\u0621-\u064A\u0660-\u0669a-zA-Z\-_\s]{4,35}$ A- 允许使用阿拉伯英文字母。 B- 不允许使用数字。 C- {4,35} 表示允许的 Min,Max 字符。 更新:提交时:接受带空格的英文单词,但不能提交带空格的阿拉伯语单词!

All cases tested

答案 11 :(得分:-2)

[\p{IsArabic}-[\D]]

不是非数字的阿拉伯字符