Самый простой вариант здесь, без изменения остальной части вашего кода , - это прописные (или нижние) регистры обеих сторон уравнения, так что вы сравниваете как для одинаковых.
function checkWordAndLetter() {
var userWord = $("#word").val();
var userLetter = $("#letter").val();
var userWordUpper = userWord.toUpperCase();
var userLetterUpper = userLetter.toUpperCase();
var tally = 0;
for (var i = 0; i < userWord.length; i++) {
if (userLetterUpper == userWordUpper[i]) {
tally++;
}
}
$("#letterResults").html(" There are " + tally + " " + userLetter + "'s in the word " + userWord);
}
$("#word,#letter").change(checkWordAndLetter)
checkWordAndLetter();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id='word' value='hello'/>
<input type='text' id='letter' value='l' />
<div id='letterResults'></div>
В вашем исходном коде эта строка:
if (userLetter == userWord[i] && i == letterUpperCase || letterLowerCase) {
могло бы быть:
if (letterUpperCase == userWord[i] || letterLowerCase == userWord[i]) {
Другой вариант может заключаться в использовании .split()
, который разделяет строку на массив путем разбиения на указанный символ. Обычно это будет ,
, но вы можете использовать любую букву:
var tally = userWordUpper.split(userLetterUpper).length - 1;
function checkWordAndLetter() {
var userWord = $("#word").val();
var userLetter = $("#letter").val();
var userWordUpper = userWord.toUpperCase();
var userLetterUpper = userLetter.toUpperCase();
var tally = userWordUpper.split(userLetterUpper).length - 1;
$("#letterResults").html(" There are " + tally + " " + userLetter + "'s in the word " + userWord);
}
$("#word,#letter").change(checkWordAndLetter)
checkWordAndLetter();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id='word' value='hello' />
<input type='text' id='letter' value='l' />
<div id='letterResults'></div>
Еще одним вариантом будет использование регулярного выражения (правка: см. Ответ Рори, повторять здесь не нужно) - преимущество регулярного выражения заключается в том, что вам не нужно сначала переходить в верхний / нижний регистр.