电话号码前缀验证/ JavaScript

时间:2015-05-04 06:40:02

标签: javascript validation

我有一个通过前缀检查电话号码的验证 然而,当我调用该函数时,第二个循环内的某些内容似乎失败了 我怀疑与otherPrefix有关。

这是我的代码:

function PhoneN(Phone)
{
    var number = document.getElementById(Phone).value;
    var zero = 0;
    var prefix = ["0", "2", "3", "4", "8", "9"];
    var otherPrefix = ["|", "7|7", "7|3", "7|4", "7|2", "7|8"];
    var boolian = false;
    var PrefixHolder;
    var PrefixHolder2;
    if(number.charAt(0) == zero)
    {
        for(var i = 1; i < prefix.length; i++)
        {
            if(prefix[i] == number.charAt(1))
                boolian = true;
        }
    }
    if(number.charAt(0) == zero)
    {
        for(var cut in otherPrefix)
        {
            var position = otherPrefix[cut].split("|");
            PrefixHolder.value = position[0];
            PrefixHolder2.value = position[1];
            if(number.charAt(1) == PrefixHolder.value && number.charAt(2) == PrefixHolder2.value)
                boolian = true;
        }
        if(boolian == false)
            alert("The Prefix number is invalid");
    }
}

1 个答案:

答案 0 :(得分:0)

如果你的代码没有提前失败,那么它最迟会失败:

PrefixHolder.value = position[0];
PrefixHolder2.value = position[1];

这是因为PrefixHolderPrefixHolder2都是undefined(你声明他们,但你永远初始化他们) ,并尝试访问undefined的属性是一个错误。

此外,它看起来像是一个不必要的复杂功能。是否有一个特殊的原因,你不仅仅是完全抛弃它们,而是像以下那样进行检查:

if(number.charAt(1) == position[0] && number.charAt(2) == position[1])

相关问题