波斯数字的正则表达式

Regex for Persian number

本文关键字:正则表达式 数字      更新时间:2023-09-26

我想创建JavaScript正则表达式来检查范围(U+06F0 to U+06F9) or (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})"

这有点复杂,但如果您想以Persian phone number格式输入波斯语和英语数字,则可以使用。我刚刚使用|作为or,括号进行分组。如@ahmad_mhm所述,您可以在 RegExr 上对其进行测试。

您可以在

regexr.com 上测试正则表达式模式,然后在代码中使用它。我习惯将波斯手机号码与 Unicode 在 blw 中匹配: <'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",
    });

此模式是波斯手机号码,用于09123456789۰۹۱۲۳۴۵۶۷۸۹

 mobileRegExp = /(^09[0-9]{9}$)|(^'u06F0'u06F9['u06F0-'u06F9]{9})$/