如何检查 textarea (tinymce) 是否只包含 space?

How can I check if textarea (tinymce) only contains space?

我有一个使用 Tinymce 的表单,我需要检查它是否只包含 space。

我试试用这个功能

function validation_form()
{
    var content = tinyMCE.get('main-comment').getContent().replace(' ','');
    if(content == "" || content == null || content == '<p> </p>') {
        return false;
    }
}

但是它 returns true 当我输入几个 spaces 并提交时,我希望它成为 return false。

谁能帮帮我? 谢谢,

-- 原来写在PHP --

function validation_form()
{
    var content = $.trim(tinyMCE.get('main-comment').getContent());
    if(content.length == 0) {
        return false;
    }
   return true;
}  

正确@A.T

使用$.trim,

它干净且可读。

function validation_form()
{
    var content = $.trim(tinyMCE.get('main-comment').getContent({format: 'text'}));
    if(content.length == 0) {
        return false;
    }
   return true;
}

更新:格式为文本,以从编辑器获取文本内容。 check fiddle

您可以使用javascript的trim方法。

function validation_form() { var content = tinyMCE.get('main-comment').getContent().replace('&nbsp;','').trim(); if(content == "" || content == null || content == '<p> </p>') { return false; } }

更多信息请查看here

使用 Angular 响应式表单验证时的相同解决方案

在打字稿文件中提供此自定义验证器函数

emptyLinesValiadtor(control:FormControl):{[s:string]:boolean} | null {
let content = control.value.replaceAll(/&nbsp;/gm,'')
.trim().split(" ").join("").replaceAll('<p></p>','').trim();
if(content == "" || content == null) {
  return  {'emptyLines': true}
}
return null;
}

在你的 Reactive 形式中 builder/declaration

 this.formName= this.formBuilder.group({
 textArea:['',this.emptyLinesValiadtor]
 });

在您的模板表单中

  <div
        *ngIf="sForm.submitted && f.textArea.errors">
        <div *ngIf="f.textArea.errors.emptyLines">
          <div>Answer cannot contain empty lines/spaces</div>
        </div>
  </div>

其中 sform 是引用变量,f 是如下所示的 typescript get 方法

get f() {
return this.formName.controls;
}