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

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

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

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

问题:即使在使用 ng-trim 之后,当我点击 save/update 时,表单 UI 仍显示带有空格的文本而不是 trimmed 数据.只有当我刷新页面时它才会显示正确的数据。

任何人都可以指导我..解决这个问题的方法是什么?

P.S。 - 我是 JavaScript 和 Angular 的新手!

谢谢

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

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

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

来自文档:

(method) String.trim(): string

Removes the leading and trailing white space and line terminator characters from a string.

  1. 使用 replace() 方法——适用于所有浏览器

语法:

testStr.replace(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);
    }

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

使用反应形式时

  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')
      }
    })