javascript - 在 Javascript 中用时间间隔检测第一人称写作

标签 javascript forms parsing dom-events

我正在寻找一种方法来检测当用户键入“我们”、“我们”、“我们的”和更多代词时以第一人称书写,但不是直接使用 keyup 事件而是间隔为他们在文本区域或文本字段中输入五秒钟。

我已经尝试了 keyup 事件,但我无法检测和解析代词以显示警告 div,显示该字段是否包含这些代词或文本。

最佳答案

textarea 上添加一个输入事件监听器并使用 setTimeout(),添加 5 秒的超时。在调用 setTimeout() 之前,检查是否已经设置了任何超时。如果有,请清除该计时器并添加一个新计时器。

要检查 textarea 中的特定单词,请使用正则表达式。

const textarea = document.querySelector('textarea');
const regex = /\b(?:we|us|our)\b/gi;
let timerID;

textarea.addEventListener('input', (event) => {
  if (timerID) {
    clearTimeout(timerID);
  }

  timerID = setTimeout(() => {
    if (regex.test(textarea.value)) {
      console.log('warning...');
    }

  }, 5000);
});
<textarea></textarea>

关于javascript - 在 Javascript 中用时间间隔检测第一人称写作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63132824/

相关文章:

python - Django 表单的 HTTP 响应问题

c# - 如何优雅地将下面的文字解析成字典

ios - 我正在解析 JSON 响应

javascript - 什么是更有效或更短的分组方法,然后使用下划线获取二维数组的百分比值?

javascript - 无法将 id 分配给有序列表

javascript - Ajax 请求命中或未命中 PHP SQL 提交

forms - 如何在不绑定(bind)请求的情况下触发表单验证?

javascript - 在 Angular nvd3 折线图中显示当前时间

javascript - Javascript 中的实时搜索优化

parsing - Ocaml 语法错误 : why are parentheses enclosing (if . ..) 在函数应用程序中有必要吗?