[英]Javascript match string against string in array
我有一组输入字段,每个输入字段都带有“ smarty_address_check”类
<input type="text" class="smarty_address_check" value="this is a new value" />
<input type="text" class="smarty_address_check" value="this value has been unchanged" />
etc
我需要做的是
数组中的值是输入字段的原始默认值/示例值 ,如果用户没有更改它们,我想对此进行操作。
var exampleAddressPresent = false;
for (var i = 0; i<smarty_address_check.length; i++) {
$('.smarty_address_check').each(function() { //For each of inputs
if (smarty_address_check[i].match($(this).val())) { //if match against array
var exampleAddressPresent = true; //Example address present
console.log($(this).attr("id")); //store id of unchanged input
}
});
}
我感觉这是不好的编程逻辑,更不用说我无法弄清为什么它不能正常工作。 我基本上要做的就是将一个字符串与另一个字符串进行比较。 有人知道更好的方法吗?
您不需要match()
来比较两个字符串。 有常见的===
比较运算符
if(smarty_address_check[i] === $(this).val()) {
编辑:如果数组的索引与输入的索引/位置匹配,则可以通过使用相同的索引来避免外部循环
$('.smarty_address_check').each(function(index) { //For each of inputs
if (smarty_address_check[index] === $(this).val()) { //if match against array
exampleAddressPresent = true; //Example address present
console.log($(this).attr("id")); //store id of unchanged input
}
});
如果array
要检查对是an Array of strings
,一个可能的解决办法是:
var myArray = ['apples', 'mangoes', 'bananas'] // example Array of strings
var string = myArray.join(':'); // we'll get "apples:mangoes:bananas"
var myValue = 'apples' // example input value
if(string.indexOf(myValue) !== -1)
// do something (i.e. myValue matches with one of the values on myArray)
祝好运
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.