我正在尝试创建一个小工具,当用户输入一个句子,然后指定一个字母时,它会接受该字母并在用户输入的上述句子中计数,并显示该字母出现在句子中的次数。
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新手,还在学习如何正确编码和嵌套某些东西。
清理代码,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>