提问人:Sol 提问时间:11/18/2022 最后编辑:isherwoodSol 更新时间:11/18/2022 访问量:42
在jQuery中,如何遍历字符串中的字符并强制匹配输入中的正确字符?
In jQuery how to loop through characters in a string and force match correct characters in input?
问:
我正在尝试匹配输入中的字符,但是当他们写错字符时,它不允许您将其放入输入中。这就是我目前所拥有的。
不确定我在非匹配区域做错了什么,我尝试重建字符串以放回输入中。
$(document).ready(function() {
$('#input1').keyup(function() {
var dInput = $('#input1').val().toLowerCase();
var a;
var b;
var word = "word";
var inputword;
word = word.toLowerCase();
for (var i = 0; i < dInput.length; i++) {
a = dInput.charAt(i);
b = word.charAt(i);
if (a == b) {
// alert("matches");
} else {
// alert("not matching");
console.log(i);
for (var j = 0; j <= i; j++) {
inputword = inputword + inputword.charAt(j);
}
$('#input1').val(inputword);
}
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="input1"></input>
答:
1赞
mplungjan
11/18/2022
#1
您当前没有将 inputword 用于其他任何在错误时清除字段的内容。
我想你是这个意思
$(document).ready(function() {
$('#input1').on("input",function() {
var dInput = $(this).val().toLowerCase();
var a;
var b;
var word = "word";
word = word.toLowerCase();
var inputword="";
for (var i = 0; i < dInput.length; i++) {
a = dInput.charAt(i);
b = word.charAt(i);
if (a == b) {
inputword += a;
}
$('#input1').val(inputword);
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="input1"></input>
较短的版本
$(document).ready(function() {
$('#input1').on("input", function() {
const dInput = $(this).val().toLowerCase();
let word = "word";
word = word.toLowerCase();
let inputword = "";
[...dInput].forEach((char, i) => {
if (char === word.charAt(i)) inputword += char;
})
$('#input1').val(inputword);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="input1"></input>
评论
inputword