晚上制作一个报名通道,期间要在提交前检查各项内容是否符合标准,

遇到电话号码的时候,当时随手写了一个简单的判断



不过,这个方法很快就出现了弊端,只要输入11个任何字符都可以绕过,把1循环11次也可以。

于是,考虑用自己并不熟悉的正则。刚开始的时候,写的表达式很简单


这样似乎问题不大了,不过,上线1个小时后,就有站内信提问无法输入号码的问题。问了一下对方,原因很简单:他没有手机,只有固定电话。

好吧,或许刚开始建立表单的时候遗漏了这块,现在只能在一个框里同时判断两种格式了。

继续将正则修改成下面的样子:




这样总ok了把~~不过,万恶的19楼为什么还会出现怪物级的用户,下班的时候,有人打电话过来,说无法输入。

我电话里询问对方,原来他没有输入区号。我建议他输入,结果他骂我有病。

囧,这年头输入区号的要求也成了有病,果然是有才的网友。

为了快点下班,我只能再次修改为下面这个样子。



短短的一个号码验证竟然折腾成这样,哎~~交互不好当,还好我不是这行的~~自我安慰一下~~

4 Comments

  • xiaoxiaomeng说道:

    怎么像网页电话?

  • AlexBlair说道:

    @xiaoxiaomeng:额,仅仅是电话号码的判断罢了。
    网页电话似乎还没有那么高级,呵呵~~

  • zjgzhengxian说道:

    电话验证确实不好弄,必须考虑到多种可能性,移动、联通、电信的电话号码各有各的规律,固话的号码最复杂,这些规律都明确之后再用正则表达式一个个套……
    不是说程序多难写,而是条件太多了……

  • AlexBlair说道:

    嗯,是的,现在也就仅仅做到按照需求做,尽可能的精简正则也是一件头痛的事情

  • 发表回复