Javascript 使用substr生成句子计数器时遇到问题

Javascript 使用substr生成句子计数器时遇到问题,javascript,Javascript,我正在试着做一个句子计数器,我几乎已经完成了。我做了一个,但我有一个问题,每当有多个句号、问号或感叹号时,它们似乎也被计算在内 html js 我通过检查当前字符是否是句号、问号或感叹号来设置句子计数器,并确保如果有下一个字符,则不会将其计算在内。但还是算数。我如何解决这个问题 对不起,英语不好你应该换衣服 下一个字符!=.| |下一个字符!=?||下一个字符!==! 到 下一个字符!==。&&下一个字符!==?&&下一个字符!==! 你应该改变 下一个字符!=.| |下一个字符!=?||下一个

我正在试着做一个句子计数器,我几乎已经完成了。我做了一个,但我有一个问题,每当有多个句号、问号或感叹号时,它们似乎也被计算在内

html

js

我通过检查当前字符是否是句号、问号或感叹号来设置句子计数器,并确保如果有下一个字符,则不会将其计算在内。但还是算数。我如何解决这个问题

对不起,英语不好

你应该换衣服

下一个字符!=.| |下一个字符!=?||下一个字符!==! 到

下一个字符!==。&&下一个字符!==?&&下一个字符!==! 你应该改变

下一个字符!=.| |下一个字符!=?||下一个字符!==! 到

下一个字符!==。&&下一个字符!==?&&下一个字符!==!
使用状态机。还考虑使用CARAT而不是子集。它不是核心JavaScript语言的一部分,将来可能会被删除。@adiga-除非它不会被删除。写这句话的人对TC39的运作一无所知。毫无意义地破坏现有代码不是他们的事重要的是要记住,直到最近,MDN还是完全由社区编辑的,一些真正的克朗人已经设法爬进来了。。。对于附录B功能,更合适的警告。上述功能的替代方法是使用正则表达式将字符串拆分为句子,并获取结果数组的长度sntnceCount=counter.split/[.?!]/g.length@T.J.Crowder感谢您的解释和链接!使用状态机。还考虑使用CARAT而不是子集。它不是核心JavaScript语言的一部分,将来可能会被删除。@adiga-除非它不会被删除。写这句话的人对TC39的运作一无所知。毫无意义地破坏现有代码不是他们的事重要的是要记住,直到最近,MDN还是完全由社区编辑的,一些真正的克朗人已经设法爬进来了。。。对于附录B功能,更合适的警告。上述功能的替代方法是使用正则表达式将字符串拆分为句子,并获取结果数组的长度sntnceCount=counter.split/[.?!]/g.length@T.J.Crowder感谢您的解释和链接!
 <input id="counter" type="text" />
<p id="sntnceCounter">Sentence(s):</p>
function myFunction() {
  var counter = document.getElementById("counter").value;
  var sentences = document.getElementById("sntnceCounter");

 for (var i = 0; i < counter.length; i++) {
    var currentCharacter = counter.substr(i, 1);
    var nextCharacter = counter.substr(i + 1, 1);
 if (
      (currentCharacter == "." ||
        currentCharacter == "?" ||
        currentCharacter == "!") &&
      (nextCharacter !== "." || nextCharacter !== "?" || nextCharacter !== "!")
    ) {
      console.log((sntnceCount += 1));
    }
  }

  sentences.innerHTML = "Sentence(s):" + sntnceCount;
}