我试图在我的一个JavaScript程序中应用.trim()到字符串。它在Mozilla下运行良好,但在IE8中尝试时显示错误。有人知道这是怎么回事吗?有没有办法我可以让它在IE中工作?

代码:

var ID = document.getElementByID('rep_id').value.trim();

错误显示:

Message: Object doesn't support this property or method
Line: 604
Char: 2
Code: 0
URI: http://test.localhost/test.js

当前回答

添加以下代码向字符串添加修饰功能。

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

其他回答

我们可以从网上得到官方代码! 参考:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim

在任何其他代码之前运行以下代码将创建trim()(如果它在本地不可用)。 if (!String.prototype.trim) { (函数(){ //确保我们调整BOM和NBSP var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; String.prototype.trim = function() { 返回。替换(空白,”); }; }) (); }

更多信息: 我刚刚发现有一个支持EcmaScript 5的js项目: https://github.com/es-shims/es5-shim 通过阅读源代码,我们可以获得更多关于修剪的知识。

defineProperties (StringPrototype, { / / http://blog.stevenlevithan.com/archives/faster-trim-javascript / / http://perfectionkills.com/whitespace-deviations/ Trim:函数Trim () { If (typeof this === 'undefined' || this === null) { throw new TypeError("can't convert " + this + ' to object'); } 返回字符串(这个)。替换(trimBeginRegexp”)。替换(trimEndRegexp”); } }, hasTrimWhitespaceBug);

我认为JavaScript标准中没有原生的trim()方法。也许Mozilla提供了一个,但如果你想在IE中使用,你需要自己编写。本页上有几个版本。

https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String/Trim

这是javascript最近添加的功能,IE不支持。

jQuery:

$.trim( $("#mycomment").val() );

有人使用$("#mycomment").val().trim();但这在IE上行不通。

我在IE9中遇到了同样的问题 但是,当我声明受支持的html版本时,在

<!DOCTYPE html>
<HTML>
<HEAD>...
.
.

问题解决了。