0

我有一个验证电话和手机号码的功能。这是我的功能的一部分:

function IsPhone(){
 var mob = /09[123]\d{8}$/;
    var phn = /0\d{10}$/;
    for (var i = 0; i < edit_rows.length; i++) {
        if (edit_types[i] == 5) {
            var phon_val = document.getElementById('phone1').value;
            if (phon_val != "") {
                if (phon_val.match(mob))
                    return true;
                else if (phon_val.match(phn)) {
                    if ((phon_val).length == 11)
                        return true;
                }
                else {
                    msg_req += "Invalid format";
                    return false;
                }
            }
        }
    }
    return true;
}  

但它接受所有这些:
009153842716
09153842716
001234567890
01234567890
我该怎么办?

4

1 回答 1

1

我认为在表达式的开头添加一个 ^ 可以解决它。您当前的查询将匹配诸如“thisisaninvalidvalue09153842716”之类的字符串。添加 ^ 可确保您不会从无效输入开始。

于 2013-07-20T21:50:08.593 回答