我想在输入值中找到任何匹配数组:
var vals = new Array('stackoverflow', 'google', 'yahoo');
var val = $('#txtAddress').val();
if ($.inArray(val, vals) != -1) {
alert('yep');
} else {
alert('nope');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="txtAddress" type="text" value="google is better" maxlength="100" id="txtAddress">
但是它不起作用,我希望在array
中找到任何匹配value
,例如value
是google is better
而数组是google
但它赢了在此值中找不到google
,仅当值为google
且数组为google
时才有效:
var vals = new Array('stackoverflow', 'google', 'yahoo');
var val = $('#txtAddress').val();
if ($.inArray(val, vals) != -1) {
alert('yep');
} else {
alert('nope');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="txtAddress" type="text" value="google" maxlength="100" id="txtAddress">
那么,在这个值中找到任何匹配数组的任何解决方案?
更新:我也尝试过这种方式,但也没有尝试:
var vals = new Array('stackoverflow','google','yahoo');
var val = $('#txtAddress').val();
for (var i = 0; i < vals.length; i++) {
if (vals[i] === val) {
alert('Value exist');
} else {
alert('Value does not exist');
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="txtAddress" type="text" value="google is better" maxlength="100" id="txtAddress">
我可以提醒相符的条款吗?
答案 0 :(得分:2)
您需要检查输入字符串(substring)上是否存在数组值。为此,您可以使用indexOf()
。
如果该值不存在,则返回-1
var vals = new Array('stackoverflow', 'google', 'yahoo');
var val = $('#txtAddress').val();
$.each(vals, function(i, a) {
if (val.indexOf(a) > -1) {
alert("found in " + a);
}
});
答案 1 :(得分:0)
https://api.jquery.com/jQuery.inArray/
$。inArray(val,vals)不进行子串匹配。 它只是比较你在for循环中的方式。
我猜你需要子串匹配才能在'谷歌更好'中找到'谷歌'
因为我猜你可以: How to check whether a string contains a substring in JavaScript?
if val[i].indexOf(vals[i]) > -1 then match else not