【问题标题】:How do I trim() a string in angularjs?如何在 angularjs 中修剪()字符串?
【发布时间】:2015-08-10 22:42:18
【问题描述】:

是否有角度特定的方式?如果没有,我应该使用内置的 jquery 来做吗?如果我应该使用内置的 jquery,如何在不使用 $ 的情况下使用 trim() 函数(或者是否有必要)?

编辑 - 是的,我知道 str.trim()。对不起。我需要这个才能在 IE 8 中工作

编辑-至于这个问题是重复的,我特别问如何以角度来执行此操作,其中引用的答案解释了如何在 javascript、node 和 jquery 中执行此操作。有没有办法使用内置的 Angular 中的 jquery 来做到这一点?

编辑 - 显然答案是“AngularJS 不这样做”

【问题讨论】:

  • trim() 是 String 原型的内置方法,大多数浏览器都支持。 MDN 链接提供了一个 polyfill
  • 您的编辑对已经回答的人非常不公平。您应该在偏移量处包含这种规定。
  • Qantas 94 Heavy - 是的 jquery 示例在那里,但我不知道这是否会在角度工作,因为 $ 被覆盖。
  • 我同意@CodingIntrigue,您的编辑对其他已回答的人不公平。此外,虽然角度不提供开箱即用的解决方案恕我直言,过滤器是这样做的角度方式。

标签: javascript jquery angularjs


【解决方案1】:

你为什么不简单地使用 JavaScript 的 trim()

str.trim() //Will work everywhere irrespective of any framework.

为了与<IE9 兼容,请使用:

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  }
}

找到了Here

【讨论】:

  • 嗯...不是无处不在...例如在
  • kangax.github.io/compat-table/es5/#String.prototype.trim。只是在 IE9 中没有严格模式
  • @Slartibartfast。找到了解决方案here。也更新了代码。
  • 这行得通,我知道这个解决方案,但我追求的是一种角度特定的方式,可能使用内置的 jquery。这似乎不存在。
  • @Slartibartfast。角度没有内置方法。但是,您可以使用其他解决方案,无论浏览器版本如何。
【解决方案2】:

如果您只需要显示修剪后的值,那么我建议不要操纵原始字符串并改用filter

app.filter('trim', function () {
    return function(value) {
        if(!angular.isString(value)) {
            return value;
        }  
        return value.replace(/^\s+|\s+$/g, ''); // you could use .trim, but it's not going to work in IE<9
    };
});

然后

<span>{{ foo | trim }}</span>

【讨论】:

    【解决方案3】:

    使用javascript的trim()方法毕竟angularjs也是javascript框架,应用trim()不需要加$

    例如

    var x="hello world";
    x=x.trim()
    

    【讨论】:

    • 之前的问题并没有提到它在 IE 中不适合你,所以现在你可以使用 str.replace(/^\s+|\s+$/g, ' ');
    【解决方案4】:

    我将此代码插入到我的标签中,它可以正常工作:

    ng-show="!Contract.BuyerName.trim()" >
    

    【讨论】:

    • 为什么这被否决了?对我来说效果很好,似乎是最简单的解决方案。
    【解决方案5】:

    除了 IE 8 及以下版本之外,基本上所有东西都支持 JS .trim()。

    如果您希望它与它一起工作,那么您可以使用 JQuery,但它需要

    如果您关心 IE7/8(如前所述),您的另一个选择是自己添加修剪:

    if(typeof String.prototype.trim !== 'function') {
      String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g, ''); 
      }
    }
    

    【讨论】:

    • 从这个和其他回复中,我收集到没有 angularjs 特定的处理方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    相关资源
    最近更新 更多