【问题标题】:How to rewrite this JS to support trim() [duplicate]如何重写此 JS 以支持 trim() [重复]
【发布时间】:2014-11-10 05:46:13
【问题描述】:

我怎样才能重写以下内容来做同样的事情,但也支持 IE 的 trim()。

var isAnonymous = settings.requester_name == null || settings.requester_name.trim() == "";

【问题讨论】:

  • IE 9+ 支持trim()。你是在比那个更早的版本上测试这个吗?

标签: javascript


【解决方案1】:

试试:

var isAnonymous = !settings.requester_name || !settings.requester_name.trim();

你可以使用这个 polyfill:

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

【讨论】:

    【解决方案2】:

    如果不支持trim(),您可以如下使用

    function myTrim(x) {
       return x.replace(/^\s+|\s+$/gm,'');
    }
    
    function myFunction() {
       var str = myTrim("        Hello World!        ");
       alert(str);
    }
    

    Demo

    【讨论】:

      【解决方案3】:

      在 Javascript 中,空字符串是一个假值,因此是 null 或未定义,因为以下应该可以工作

      var isAnonymous = !settings.requester_name || !settings.requester_name.trim()

      表达式的第二部分将空字符串转换为布尔值,如果为空则返回 false。

      您使用的是哪个版本的 IE? Trim 已经支持一段时间了...

      如果你写的是 ie9 之前的版本,你可以为 trim 添加一个 polyfill

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

      FFR:Mozilla 开发人员网络是 Javascript 应用程序文档的重要来源,其中包括可用于旧浏览器支持的 polyfill 实现。

      这是 trim 的文档(polyfill 可能看起来很熟悉)https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim

      【讨论】:

      • 你读过这个问题吗?根据您的编辑,您没有。他试图获得对 IE
      • 冷静点,我的问题没有说 ie9。
      • 您的原始答案与他的问题无关...最重要的是,您在 5 分钟后将与 CD 答案完全相同的代码输入到您的代码中。
      猜你喜欢
      • 1970-01-01
      • 2015-03-25
      • 2018-03-07
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多