【发布时间】:2014-11-10 05:46:13
【问题描述】:
我怎样才能重写以下内容来做同样的事情,但也支持 IE 的 trim()。
var isAnonymous = settings.requester_name == null || settings.requester_name.trim() == "";
【问题讨论】:
-
IE 9+ 支持
trim()。你是在比那个更早的版本上测试这个吗?
标签: javascript
我怎样才能重写以下内容来做同样的事情,但也支持 IE 的 trim()。
var isAnonymous = settings.requester_name == null || settings.requester_name.trim() == "";
【问题讨论】:
trim()。你是在比那个更早的版本上测试这个吗?
标签: javascript
试试:
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, '');
};
}
【讨论】:
如果不支持trim(),您可以如下使用
function myTrim(x) {
return x.replace(/^\s+|\s+$/gm,'');
}
function myFunction() {
var str = myTrim(" Hello World! ");
alert(str);
}
【讨论】:
在 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
【讨论】: