如果输入值包括数组中的值以及额外的字符
If input value includes values from an array as well as extra characters
我正在尝试创建一个邮政编码搜索,如果输入的邮政编码无效,它会包含一条错误消息。
我已经确定了数组中有效的邮政编码,并声明了一个声明,如果输入值包含这些值中的任何一个,则不会显示错误消息。但是,由于我只声明了邮政编码的第一个字母,因此当输入包含其他字符以及数组值的完整邮政编码时,将显示错误消息。
如果输入值的第一个字母与附加字符一起等于数组值,我该如何做到这一点,消息保持关闭状态?
声明if(include())
不是正确的方法吗?
您似乎是在 include 函数中测试相等性(即完全匹配)。尝试更新它以查看每个可能的邮政编码前缀(arr 中的项目)是否开始您的字符串:
function include(arr, obj) {
for(var i=0; i<arr.length; i++) {
if (obj.indexOf(arr[i]) === 0) return true;
}
}
编辑
我知道您现在只是在调试,但我建议将更改和单击事件处理程序中的通用代码拉到它自己的函数中,这样您就不必复制和粘贴(并修复错误两次!)
我正在尝试创建一个邮政编码搜索,如果输入的邮政编码无效,它会包含一条错误消息。
我已经确定了数组中有效的邮政编码,并声明了一个声明,如果输入值包含这些值中的任何一个,则不会显示错误消息。但是,由于我只声明了邮政编码的第一个字母,因此当输入包含其他字符以及数组值的完整邮政编码时,将显示错误消息。
如果输入值的第一个字母与附加字符一起等于数组值,我该如何做到这一点,消息保持关闭状态?
声明if(include())
不是正确的方法吗?
您似乎是在 include 函数中测试相等性(即完全匹配)。尝试更新它以查看每个可能的邮政编码前缀(arr 中的项目)是否开始您的字符串:
function include(arr, obj) {
for(var i=0; i<arr.length; i++) {
if (obj.indexOf(arr[i]) === 0) return true;
}
}
编辑 我知道您现在只是在调试,但我建议将更改和单击事件处理程序中的通用代码拉到它自己的函数中,这样您就不必复制和粘贴(并修复错误两次!)