检测时间间隔为 Javascript 的第一人称书写

Detect first person writing with time interval in Javascript

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

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

您可以使用正则表达式模式,这里是一个示例

const element = document.getElementById('element');
warn=document.getElementById("warning")
pattern=/\b(we|us|our)\b/g
element.addEventListener("input",function(){
 if(pattern.test(this.value)){
  warn.textContent="Warning"
 }
  else return 
})
<input id="element" type="text">
<div id="warning"></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>