如何从输入文本中删除前导和尾随空白

How to remove leading and trailing white spaces from input text?

本文关键字:空白 删除 输入 文本      更新时间:2023-09-26

我需要修复AngularJS应用程序中的一个错误,该应用程序有许多表单要提交数据-

表单中的每个文本框都接受空格(包括前导和尾随)并将其保存到数据库中。所以为了解决这个问题,我使用了ng-trim="true",它工作了,数据在后端被正确保存。

问题:即使在使用ng-trim后,当我单击保存/更新时,表单UI显示带有空白的文本而不是修剪过的数据。只有当我刷新页面时才显示正确的数据。

谁能给我指路…解决这个问题的方法是什么?

注:-我是JavaScript和Angular的新手!

谢谢

  1. 使用trim()方法工作良好,但在较新的浏览器中使用。
    function removeWhitespaceUsingTrimMethod {
     
            var str = "    This is whitespace string for testing purpose     ";
            var wsr = str.trim();
            alert(wsr);
        }

输出:这是用于测试的空白字符串

从文档:

(method) String.trim(): string

删除前后空白和行结束符字符串中的字符。

  • 使用replace()方法-适用于所有浏览器
  • 语法:

    testStr。替换(rgExp replaceText);str.replace (/^ ' s + | ' s + $/g");

    function removeWhitespaceUsingReplaceMethod {
             
                var str = "    This is whitespace string for testing purpose     ";
                var wsr = str.replace(/^'s+|'s+$/g, '');
                alert( wsr);
        }
    

    输出:这是用于测试的空白字符串

    使用string = string.trim(),其中string是保存字符串值的变量

    使用响应式表单

      this.form.controls['email'].valueChanges
        .subscribe(x=>{
          if(x.includes(' ')){
            console.log('contains spaces')
            this.form.controls['email'].setValue(x.trim())
          }else{
            console.log('does not contain spaces')
          }
        })