JavaScript 中的 .trim() 在 IE 中不起作用

IT技术 javascript internet-explorer trim
2021-01-09 22:30:34

我试图.trim()在我的一个 JavaScript 程序中应用到一个字符串。它在 Mozilla 下运行良好,但在 IE8 中尝试时显示错误。有谁知道这里发生了什么?无论如何我可以让它在IE中工作吗?

代码:

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

错误显示:

消息:对象不支持此属性或方法
线路:604
字符:2
代码:0
URI:http://test.localhost/test.js
6个回答

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

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  }
}
好答案。请注意,根据一项基准测试,replace(/^\s\s*/, '').replace(/\s\s*$/, '')应该比replace(/^\s+|\s+$/, '')Firefox 2快 3 倍blog.stevenlevithan.com/archives/faster-trim-javascript
2021-03-22 22:30:34
另请注意,replace(/^\s+|\s+$/, '')仅删除前导或尾随空格,这不是修剪函数的预期行为。如果要删除前导和尾随空格,则需要使用replace(/^\s+|\s+$/g, '').
2021-03-24 22:30:34
@Stephen 是的,你是对的,但问题不在于框架。它是关于 javascript 和修剪的。
2021-03-24 22:30:34
对我来说似乎有点傻。不是每个 js 框架都提供实用的 trim() 函数吗?如果这是您遇到的唯一问题,那很好,但是 IE 有很多“不同”的方式可以使库在短期内变得有value。
2021-03-30 22:30:34
如果您不使用 jQuery,这是一个不错的解决方案。但如果没有, $.trim() 似乎是一个更好的解决方案,因为它使您的脚本更简单一些。
2021-03-31 22:30:34

看起来该功能未在 IE 中实现。如果您使用的是 jQuery,则可以$.trim()改用 ( http://api.jquery.com/jQuery.trim/ )。

现在,我喜欢 jQuery,但只为 .trim() 导入它似乎有点矫枉过正
2021-03-17 22:30:34
@Erik 这将是 Jin 遇到的唯一 IE 问题吗?我可以编写很多有用的 javascript 而不必使用库的浏览器清理功能。
2021-03-22 22:30:34
我同意。这就是为什么我说“如果你使用 jQuery ...” =)
2021-03-23 22:30:34
请注意 $.trim() 与 $(<element>.val().trim() 不同 - 更多信息请点击:stackoverflow.com/questions/4315570/...
2021-04-09 22:30:34

jQuery:

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

有人使用,$("#mycomment").val().trim();但这不适用于 IE。

jQuery 的一个很好的例子。
2021-03-11 22:30:34
谢谢你的完美答案,它让我们在这个腐烂、摇摇欲坠的旧浏览器桥上省了很多麻烦:)
2021-03-19 22:30:34
@toha,跨浏览器是jQuery的关键之一
2021-03-23 22:30:34
正确先生。我猜。谢谢
2021-03-24 22:30:34
先生,那个方法是跨浏览器的吗?
2021-04-06 22:30:34

不幸的是,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+$/,"");
}

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

这是对 javascript 的一个相当新的补充,IE 不支持它。