检查3个阵列中是否有值

时间:2013-11-23 17:10:59

标签: jquery html

我目前正在开发一个邮政编码检查器,如果用户输入他们的邮政编码,该功能会检查3个数组:

  • 如果客户邮政编码以4个字母/数字开头,则检查数组1
  • 如果客户邮政编码以3个字母/数字开头,则会检查数组2
  • 如果客户邮政编码以2个字母/数字开头,则会检查数组3

此函数还将用户输入转换为大写,因为所有数组值都是大写的。

问题:该函数使用elseif命令检查2个数组。但是,当我引入3个阵列时,它已停止工作。有谁知道我做错了什么?请参阅jsfiddle:http://jsfiddle.net/24Mqw/6/获取完整代码

var postcodemain = ['TR21', 'TR22', 'TR23', 'TR24', 'TR25', 'PO30', 'PO31', 'PO32', 'PO33', 'PO34', 'PO35', 'PO36', 'PO37', 'PO38', 'PO39', 'PO40', 'PO41', 'AB30', 'AB31', 'AB33', 'AB34', 'AB35', 'AB36', 'AB37'];

var postcodesecond = ['IM1', 'IM2', 'IM3', 'IM4', 'IM5', 'IM6', 'IM7', 'IM8', 'IM9', 'G83', 'IV1', 'IV2', 'IV3', 'IV4', 'IV5', 'IV6', 'IV7', 'IV8', 'IV9', 'KW1', 'KW2', 'KW3', 'KW5', 'KW6', 'KW7', 'KW8', 'KW9', 'HS1', 'HS2', 'HS3', 'HS4', 'HS5', 'HS6', 'HS7', 'HS8', 'HS9', 'ZE1', 'ZE2', 'ZE3'];

var postcodethird = ['BT', 'GY', 'JE'];

var mainfirst = $(this).val().toUpperCase().substring(0, 3);
var mainsecond = $(this).val().toUpperCase().substring(0, 2);
var mainthird = $(this).val().toUpperCase().substring(0, 1);

1 个答案:

答案 0 :(得分:3)

substring()排除了结束位置

    var value = this.value.toUpperCase();
    var mainfirst = value.substring(0, 4);
    var mainsecond = value.substring(0, 3);
    var mainthird = value.substring(0, 2);

演示:Fiddle