首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手机号的正则验证表达式

手机号的正则验证表达式
EN

Stack Overflow用户
提问于 2014-01-18 22:11:56
回答 3查看 2.8K关注 0票数 0

巴基斯坦手机号如何进行正则验证表达式?巴基斯坦手机号码示例: 03339961128,03456831234,03215769989,03139981234

代码语言:javascript
复制
<asp:RegularExpressionValidator ID="RegularExpressionValidator1"
                                runat="server" 
                                ValidationExpression="" 
                                ControlToValidate="textboxph" 
                                ErrorMessage="Enter Valid Number!">  
</asp:RegularExpressionValidator>

我应该在验证表达式中写什么?

EN

回答 3

Stack Overflow用户

发布于 2014-01-18 22:16:22

使用正则表达式验证电话号码通常不是理想的方法,而且会将您的应用程序绑定到特定的格式。使用库来验证电话号码会更容易,比如libphonenumber。它包含服务器端和Javascript函数,用于验证、格式化和获取有关输入的电话号码的信息。使用这样的库有许多优点:

  • 它将忽略人们经常输入的任何格式(例如空格、方括号、连字符)
  • 它将能够将数字格式设置为您所在国家/地区的首选显示格式
  • 它将能够告诉您有关正在输入的数字类型的信息

然而,如果你想要一个简单的表达式,使用你已经得到的例子,我会选择^03\d{9}$ (假设巴基斯坦手机号码从03开始,有11位数字)。

票数 0
EN

Stack Overflow用户

发布于 2015-11-17 15:25:07

您还可以通过简单的if-else检查来验证手机号码。您还可以验证用户是否输入了正确的Mobilink、Ufone、Telenor、Warid等网络代码。在此功能中,只接受11位或13位,例如

03463988574 (有效) +923332214561 (有效)

08953055215 (无效) +927415822875 (无效)

您也可以根据(PK)手机号的需求更改其功能

代码语言:javascript
复制
 public static bool CheckMobileNumberFormat(string cellnumber)
        {
            bool ValidateNumber = false;
            IEnumerable<string> codes = new List<string> { "331", "332","333", "334","335", "336","337", "338",  //Ufone
                                                                   "300", "301","302", "303","304", "305","306", "307",  //Mobilink
                                                                   "321", "322","323", "324","325", "326","327", "328",  //Warid   
                                                                   "341", "342","343", "344","348","345", "346","347", "347","348"}; //Telenor

            if (cellnumber.Length == 11)
            {
                if (cellnumber[0] == '0')
                {
                    //string originalnumber=cellnumber;
                    string checkcode = cellnumber.Substring(1, 3);

                    bool match = codes.Contains(checkcode);
                    if (match == true)
                    {
                        ValidateNumber = true;

                    }
                    else
                    {
                        ValidateNumber = false;
                    }

                }
                else
                {
                    ValidateNumber = false;
                }
            }

            else if(cellnumber.Length ==13)
            {
                if (cellnumber[0] == '+' && cellnumber[1]=='9' && cellnumber[2]=='2')
                {
                    string originalnumber = cellnumber;
                    string checkcode = cellnumber.Substring(3, 3);

                    bool match = codes.Contains(checkcode);
                    if (match == true)
                    {
                        ValidateNumber = true;

                    }
                    else
                    {
                        ValidateNumber = false;
                    }

                }
                else
                {
                    ValidateNumber = false;
                }

            }
            return ValidateNumber;
        }

//*点击按钮*

代码语言:javascript
复制
string input = textBox1.Text;
            bool result = CheckMobileNumberFormat(input);
            if (result == true)
            {
                MessageBox.Show("Valid #");
            }
            else
            {
                MessageBox.Show("InValid #");
            }
票数 0
EN

Stack Overflow用户

发布于 2014-10-25 20:07:10

您可以使用此验证器表达式对所有巴基斯坦手机号码^((+92)|(0092))-{0,1}\d{3}-{0,1}\d{7}$|^\d{11}$|^\d{4}-\d{7}$进行验证

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21205240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档