如何编写仅匹配阿拉伯文、英文字母及空格的JavaScript正则表达式
问题根源
你当前使用的正则只设置了结尾锚点$,没有设置开头锚点^,只会校验字符串末尾的字符是否符合规则,只要末尾是阿拉伯字母、英文字母或空格,即使中间夹带数字、特殊字符也会被判定为匹配成功。
修正后的正则
/^[\u0620-\u064A a-zA-Z]+$/
规则说明
- 开头添加
^锚点,强制要求从字符串的第一个字符到最后一个字符,所有字符都必须匹配方括号内的规则 - 方括号内的规则保留了你原有需求:
\u0620-\u064A匹配阿拉伯字母- 空格匹配允许输入的空格字符
a-zA-Z匹配大小写英文字母
- 如果你需要覆盖更全的阿拉伯语字符(包括变音符号、阿拉伯语衍生语言字符等),可以将阿拉伯字符范围调整为
\u0600-\u06FF
测试效果
- 匹配通过的合法字符串:
Hello World、مرحبا بالعالم、混合Hello مرحبا - 匹配拦截的非法字符串:
سم111111ر、test@123、hello#world
内容的提问来源于stack exchange,提问作者Samar
相关产品推荐
相关产品推荐

