#javascript #html
#javascript #HTML
Вопрос:
Я пытаюсь создать небольшой инструмент, который, когда пользователь вводит предложение, а затем указанную букву, берет эту букву и подсчитывает ее в предложении, введенном пользователем выше, и отображает количество раз, когда буква появляется в предложении.
let sentence = document.getElementById("textbox1")
let character = sentence.value
let letter = document.getElementById("textbox2")
let getLetter = letter.value
var exampleString = character
document.getElementById("parseString").onclick = letterCount;
function letterCount(string, letter, caseSensitive) {
var count = 0;
if (!caseSensitive) {
string = string.toUpperCase();
letter = letter.toUpperCase();
}
for (var i = 0, l = string.length; i < string.length; i = 1) {
if (string[i] === letter) {
count = 1;
}
}
return count;
}
let display = (letterCount(character, getLetter, true));
document.getElementById("output1").innerHTML
<p>Enter a sentence: <input type="text" id="textbox1"></p>
<p>Enter a letter: <input type="text" id="textbox2"></p>
<button id="parseString">Parse String</button>
<p id="output1">The letter appears in the string</p>
Я все еще новичок в JavaScript и все еще учусь правильно кодировать и вставлять определенные вещи.
Комментарии:
1. Можете ли вы исправить свой фрагмент, чтобы он выполнялся?
Uncaught SyntaxError: Unexpected string
2. Код, похоже, работает, возможно, он немного уродлив, и его не помешало бы немного очистить, но в чем именно заключается ваш вопрос?
3. @ChatterOne мой вопрос в том, как я могу сделать так, чтобы, когда пользователь вводит предложение, скажем, «StackOverflow», а затем вводит «o» во 2-м текстовом поле, и на выходе отображается «Буква O появляется 2 раза»
4. @CertainPerformance сейчас обновится.
5. @MichaelKheong Вы должны иметь возможность использовать sentence.value для получения значения текстового поля в вашем коде.
Ответ №1:
Очистил ваш код, некоторые переменные в top должны быть внутри вашего обработчика событий
document.getElementById("parseString").onclick = function() {
let character = document.getElementById("textbox1").value;
let getLetter = document.getElementById("textbox2").value;
let count = letterCount(character, getLetter, true);
document.getElementById("output1").innerHTML = `The letter '${getLetter}' appears in the string '${character}' ${count} times`;
}
function letterCount(string, letter, caseSensitive) {
regexp = caseSensitive ? new RegExp(letter, 'g') : new RegExp(letter, 'gi');
return string.match(regexp).length;
}
<p>Enter a sentence: <input type="text" id="textbox1"></p>
<p>Enter a letter: <input type="text" id="textbox2"></p>
<button id="parseString">Parse String</button>
<p id="output1">The letter appears in the string</p>
Комментарии:
1. Я бы, по крайней мере, добавил
;
к окончаниям строк (многие отсутствуют), такжеexampleString
никогда не используется