检测单词和句子的完成情况

时间:2017-07-20 14:52:43

标签: javascript angular angular-cli

(ngModelChange)我使用regex检测内容更改并将RestAPI发送到服务器。但是,如果我发送一个1000字符的段落,当我添加一个新的5个字母的单词时,实际上它会向服务器发送1001 + 1002 + 1003 + 1004 + 1005 = 5015个字符,这是完全没必要的。

所以我试图检测句子完成(或单词完成),以便只发送新句子(单词)(如上例所示,只发送5个新字符,或者至少只发送1005个字符) )。

我尝试过的方法是:(使用.trim()length<textarea>

  1. 检测空白区域;
  2. 检测&#39;,&#39;和&#39;。&#39;
  3. 比较当前和上一个字符串的长度。
  4. 虽然我不知道这是否是最好的方法。

    有没有更好的方法来检测{ -key1: { type: 'type1', completed: false }, -key2: { type: 'type2', completed: true }, -key3: { type: 'type2', completed: false } } 中的字/句更改?

    总结:虽然我不想考虑按时更新,但仍然是一个很好的考虑方式。 (检查所选答案)

2 个答案:

答案 0 :(得分:1)

一种技术是使用超时,每隔几秒或任何间隔

只允许一个请求
var timeoutFn;

function change() {
    console.log('change');
    clearTimeout(timeoutFn);
    timeoutFn = setTimeout(doApiRequest, 1000);
}

function doApiRequest() {
    console.log('apiRequest');
}

for(i = 0; i < 10; i++){
    change()
}

答案 1 :(得分:1)

不知道我是否遗漏了任何东西,但我认为,检查输入的最后一个字符就足以检测一个单词了。如果最后一个字符是一个字母([a-z]),那么它不是一个字;如果它是其他任何东西,那么它之前的内容就是一个单词。

对于句子,我认为检测'。'就足够了。字符。你得到'。',你得到一个句子的结尾。内容直到前面的'。'是你的判决。

我知道这是非常基本的,但可以随意添加。