if($('#this').val().indexOf('4289')){ Do something else Do something.
这只适用于4289,
当我尝试使用’或’添加其他要索引的数字时,它不起作用.我该怎么把其他数字呢例如
IndexOf('4289||78843')
我想要检查这个数字,如果输入字段中的数字不是其中的一个,则返回错误.
当一个人再次访问这个领域时,这更多的是死亡.
$('#Zip').blur(function(){ if (($(this).val().indexOf('0860') > -1)||($(this).val().indexOf('0850') > -1)){ $('#Status_Zip').html("No way.") $(this).alterClass('*_*','Success') return false; }else{$('#Status_Code').hide() $(this).alterClass('*_*','Error') $(this).css('border-color','#F00').css('background-color','#FFC').effect("pulsate",{times:4},2) return true; } })
解决方法
这是因为它会寻找字符串’4289 || 78843′,这在我假设的目标中不存在.逻辑运算符不能被抛弃在任何地方,只有逻辑运算的实际值才可以.这样的事情
if(($('#this').val().indexOf('4289') > -1) || ($('#this').val().indexOf('78843') > -1))
indexOf()函数的返回值是该值在目标值中的数字索引,如果未找到则返回-1.因此,对于您要查找的每个值,您需要检查索引是否为> -1(这意味着它在字符串中找到).把整个条件和||它有另一个条件,这是一个逻辑操作.
编辑:关于你的评论,如果你想将它抽象成一些更干净,更通用的东西,你可以将它解压缩到自己的函数中,该函数遍历一个字符串集合,如果任何一个都在目标字符串中,则返回true.也许这样的事情:
function isAnyValueIn(target,values) { for (var i = 0; i < values.length; i++) { if (target.indexOf(values[i]) > -1) { return true; } } return false; }
甚至可以使用.forEach()在数组上做一个更优雅的方法,但这至少表明了这个想法.然后在代码的其他地方,您将构建数组数组并调用该函数:
var values = ['4289','78843']; var target = $('#this').val(); if (isAnyValueIn(target,values)) { // At least one value is in the target string }