如何正则表达式匹配整个字符串而不是单个字符

时间:2014-02-27 08:42:42

标签: javascript regex validation arabic

我正在尝试按照this post中的说明使用JavaScript正则表达式/[\u0600-\u06FF]/对阿拉伯字母字符输入实施“alpha”验证。我只想接受阿拉伯字母字符和空格。

现在的问题是它给出了以下结果:

r = /[\u0600-\u06FF]/

r.test("abcd")      // false - correct
r.test("@#$%^")     // false - correct
r.test("س")         // true  - correct
r.test("abcd$$#5س") // true  - should be false
r.test("abcdس")     // true  - should be false

如果给出单个匹配字符,则它将整个输入分类为可接受,即使输入的其余部分充满了不可接受的字符。我应该使用什么正则表达式?

2 个答案:

答案 0 :(得分:3)

您需要在正则表达式中添加^$个锚点,以及+以允许多个字符。

试试这个:

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

我不确定你提到的“阿拉伯语空格”是否包含在字符范围内,但是如果你想在字符串中允许空格,那么只需在\s中添加[]括号。

答案 1 :(得分:1)

你可以明确地允许一些键e-g:numpad,backspace和space,请查看下面的代码片段:

example.com/