【发布时间】:2015-01-24 08:07:03
【问题描述】:
我想创建 JavaScript 正则表达式来检查 (U+06F0 to U+06F9) or (0-9) 范围内的文本框的值
我该如何构建它?
【问题讨论】:
标签: javascript regex farsi
我想创建 JavaScript 正则表达式来检查 (U+06F0 to U+06F9) or (0-9) 范围内的文本框的值
我该如何构建它?
【问题讨论】:
标签: javascript regex farsi
将范围放在一个字符类中,如下所示。
^[\u06F0-\u06F90-9]+$
+ 重复上一个令牌一次或多次。
【讨论】:
\u06F0-\u06F9 和0-9,完全符合您的要求。
\u06F0-\u06F9 和0-9 视为单独的部分。正则表达式引擎也像这样解析..
您可以在regexr.com 上测试正则表达式模式,然后在您的代码中使用它。我用 Unicode 匹配波斯手机号码:
<\u06F0 to \u06F9> 等于 <۰-۹> 匹配波斯数字,如下所示:۰۹۱۹۹۱۹۱۱۲۲。
$("#registerForm").validate({
rules:{
mobile:{
required:true,
pattern : ^[\u06F0][\u06F0-\u06F9]{3}[\u06F0-\u06F9]{3}[\u06F0-\u06F9]{4},
},
},
messages:{
mobile:{
required:"شماره تلفن همراه خود را وارد کنید",
number:"فقط عدد وارد کنید",
pattern:"تلفن همراه را به درستی وارد کنید"
},
},
errorClass: "help-inline",
errorElement: "span",
});
【讨论】:
^[\u06F0][\u06F9][\u06F0-\u06F9]{2}[\u06F0-\u06F9]{3}[\u06F0-\u06F9]{4}。因为我们只有۹ 在第二位。
0-9。
我根据我的搜索建议这种模式:
pattern = "^([\u06F0]|[0])([\u06F9]|[9])(([\u06F0-\u06F9]|[0-9]){2})(([\u06F0-\u06F9]|[0-9]){3})(([\u06F0-\u06F9]|[0-9]){4})"
这有点复杂,但如果您想以Persian phone number 格式输入波斯语和英语数字,则可以使用。我刚刚将| 用作or,括号用于分组。正如@ahmad_mhm 提到的,您可以在RegExr 上对其进行测试。
【讨论】: