我尝试使用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 !");
}
}
感谢。
答案 0 :(得分:1)
为正则表达式添加开始和结束模式。所以就像,
/^\d{3}-\d{6}$/
出于验证目的,如果添加开始和结束模式会更好。上述正则表达式表示,电话号码必须在-
之前有三位数,在-
之后必须有6位数。
例如:
如果给定的电话号码为0222-989898
,则此正则表达式\d{3}-\d{6}
与222-989898
匹配,因此返回true。但是如果我们放置开始和结束模式,^\d{3}-\d{6}$
它告诉正则表达式引擎,-
之前必须有3位数,-
之后必须有6位数。在你的情况下,它是-
之前的四位数,所以它会失败。