当字符串不匹配时(RegEx),检查返回true

时间:2014-07-12 06:13:59

标签: javascript regex

我尝试使用JS的正则表达式在我的网站上验证用户的电话号码格式,我使用此模式 XXX -XXXXXX和( XXX 代表我的'022'城市),但是当我使用 XXXX -XXXXXX格式进行测试时,它仍然被认为是相同的,这里到底发生了什么?

* 当用户输入时,假设 0222 -XXXXXX,下面的方法接受它为真,呃?? !!#@ $

   var pattern= /\d{3}-\d{6}/; // this is the phone pattern


   // below is method for checking
   function periksaTelp(that) {
        if (pattern.test(that.value)) { 
            document.write("Phone format is accepted !"); 
        }          
        else { 
           document.write("Non valid Phone format !"); 
        }
   }

感谢。

1 个答案:

答案 0 :(得分:1)

为正则表达式添加开始和结束模式。所以就像,

/^\d{3}-\d{6}$/

出于验证目的,如果添加开始和结束模式会更好。上述正则表达式表示,电话号码必须在-之前有三位数,在-之后必须有6位数。

例如:

如果给定的电话号码为0222-989898,则此正则表达式\d{3}-\d{6}222-989898匹配,因此返回true。但是如果我们放置开始和结束模式,^\d{3}-\d{6}$它告诉正则表达式引擎,-之前必须有3位数,-之后必须有6位数。在你的情况下,它是-之前的四位数,所以它会失败。