如何限制Quill Js中输入的单词?

时间:2016-08-25 11:16:00

标签: javascript arrays quill

我遵循codepen building a word counter modul的示例,除了计数,我需要将输入限制为30个字,因此用户无法再写。我不知道在哪里实施我需要的东西。我想我可以使用像splice(开头,结尾)这样的东西。

这两个人正在做计数词:

calculate() {
   let text = this.quill.getText();
   if (this.options.unit === 'word') {
     text = text.trim();
     return text.length > 0 ? text.split(/\s+/).length : 0
   } else {
    return text.length;
   }
 }

 update() {
   var length = this.calculate();
   var label = this.options.unit;
   if (length !== 1) {
     label += 's';
   } 
 this.container.innerHTML = length + ' ' + label;
 }

我不知道是否必须添加新方法或修改其中一种方法。类似的东西:

limitWords() {
  let text = this.quill.getText();
  if (text.length > 30) {
     text = text.splice(0, 30);
  }
  return text.length;
}

这显然失败了,任何指导都会非常感激!

更新

感谢@maioman,我得到了一个更接近我需要的方法,通过做以下我可以"限制"到30的话。

问题

如果我继续输入预览词会消失,而不是在输入字段中输入未定义:

update() {
var length = this.calculate();
if (length > 30) { 
  this.restrict();
}
var label = this.options.unit;
if (length !== 1) {
  label += 's';
}
 this.container.innerHTML = length + ' ' + label;
}

restrict() {
  let text = this.quill.getText();
  text = text.replace(/\s+.+/);
  this.quill.setText(text);
  this.update()
 } 

我尝试了什么:

let text = this.quill.getText().slice(0, 30); 

这不会抛出一个未定义的但它不起作用。

0 个答案:

没有答案