我试图在我的一个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

当前回答

我已经写了一些代码来实现修剪功能。

LTRIM(左修剪):

function ltrim(s)
{
    var l=0;
    while(l < s.length && s[l] == ' ')
    {   l++; }
    return s.substring(l, s.length);
} 

RTRIM(右修剪):

function rtrim(s)
{
    var r=s.length -1;
    while(r > 0 && s[r] == ' ')
    {   r-=1;   }
    return s.substring(0, r+1);
 }

修剪(修剪两边):

function trim(s)
{
    return rtrim(ltrim(s));
}

OR

正则表达式也是可用的,我们可以使用。

function trimStr(str) {
  return str.replace(/^\s+|\s+$/g, '');
}

有用的解释

其他回答

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

我已经写了一些代码来实现修剪功能。

LTRIM(左修剪):

function ltrim(s)
{
    var l=0;
    while(l < s.length && s[l] == ' ')
    {   l++; }
    return s.substring(l, s.length);
} 

RTRIM(右修剪):

function rtrim(s)
{
    var r=s.length -1;
    while(r > 0 && s[r] == ' ')
    {   r-=1;   }
    return s.substring(0, r+1);
 }

修剪(修剪两边):

function trim(s)
{
    return rtrim(ltrim(s));
}

OR

正则表达式也是可用的,我们可以使用。

function trimStr(str) {
  return str.replace(/^\s+|\s+$/g, '');
}

有用的解释

不幸的是,trim()不支持跨浏览器JavaScript。

如果你不使用jQuery(它有.trim()方法),你可以使用以下方法来添加对字符串的修剪支持:

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
    return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
    return this.replace(/\s+$/,"");
}

这是因为输入错误getElementByID。将其更改为getElementById

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

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