使用JavaScript,如何从句子X次获得Y字母数?

问题描述 投票:0回答:1

我正在尝试创建一个小工具,当用户输入一个句子,然后指定一个字母时,它会接受该字母并在用户输入的上述句子中计数,并显示该字母出现在句子中的次数。

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新手,还在学习如何正确编码和嵌套某些东西。

javascript html
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.