我有一个通过前缀检查电话号码的验证
然而,当我调用该函数时,第二个循环内的某些内容似乎失败了
我怀疑与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");
}
}
答案 0 :(得分:0)
如果你的代码没有提前失败,那么它最迟会失败:
PrefixHolder.value = position[0];
PrefixHolder2.value = position[1];
这是因为PrefixHolder
和PrefixHolder2
都是undefined
(你声明他们,但你永远初始化他们) ,并尝试访问undefined
的属性是一个错误。
此外,它看起来像是一个不必要的复杂功能。是否有一个特殊的原因,你不仅仅是完全抛弃它们,而是像以下那样进行检查:
if(number.charAt(1) == position[0] && number.charAt(2) == position[1])