繁体   English   中英

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

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

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

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

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

谁能指导我..解决这个问题的方法是什么?

PS - 我是 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

从字符串中删除前导和尾随空格和行终止符。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM