我想创建JavaScript正则表达式来检查文本框中数值是否在范围内
(U+06F0到U+06F9)或(0-9)
。我应该如何构建这个正则表达式?(U+06F0到U+06F9)或(0-9)
。我应该如何构建这个正则表达式?将范围放在字符类中,如下所示。
^[\u06F0-\u06F90-9]+$
+
重复前面的表达式一次或多次。
pattern = "^([\u06F0]|[0])([\u06F9]|[9])(([\u06F0-\u06F9]|[0-9]){2})(([\u06F0-\u06F9]|[0-9]){3})(([\u06F0-\u06F9]|[0-9]){4})"
虽然有点复杂,但如果您想要以波斯电话号码
的格式输入波斯和英文数字,它是可行的。我只是用|
作为或
,括号用于分组。如@ahmad_mhm所提到的那样,您可以在RegExr上测试它。
您可以在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}
。因为我们只有在第二个位置上有۹
。 - Asef Hossini0-9
。 - Asef Hossini这个模式适用于波斯移动电话号码,包括09123456789
或۰۹۱۲۳۴۵۶۷۸۹
。
mobileRegExp = /(^09[0-9]{9}$)|(^\u06F0\u06F9[\u06F0-\u06F9]{9})$/
\u06F0-\u06F9
和0-9
,正如您所需的那样。 - Tomalak\u06F0-\u06F9
和0-9
视为不同的部分。正则表达式引擎也是这样解析的。 - Avinash Raj