JavaScript .split 函数不适用于所有浏览器

标签 javascript

此功能在部分IE浏览器中有效,但并非在所有IE浏览器中均有效。 IE 8 给我一个错误:

网页错误详情

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET4.0C; .NET4.0E; MS-RTC LM 8) Timestamp: Wed, 25 Apr 2012 15:18:21 UTC

Message: Object doesn't support this property or method
Line: 9
Char: 17
Code: 0
URI: file:///G:/1.html

代码:

GetLink();

function GetLink() {
   selectedOption = "asdasdasd: asdasdas|asdadasd:asdadsasd|asdasdasd:asdasdad";
   ROOM = selectedOption.split("|")[0].trim().split(":")[1].trim();
   BUILDING = selectedOption.split("|")[1].trim().split(":")[1].trim();
   var ret = "room_chart.jsp?room=" + ROOM + "&building=" + BUILDING;
   return ret;
}

最佳答案

split 方法没问题,是 trim 导致了问题。你可以用这个小polyfill from MDN :

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

String.prototype.trim 在 IE < 9 中不可用。上面的代码片段只是将 split 方法添加到 String.prototype 如果它尚不存在,并且其行为与您期望的 native 实现完全相同。

如果您使用的是 jQuery,则有一个 $.trim您可以使用的方法。

关于JavaScript .split 函数不适用于所有浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10318672/

相关文章:

javascript - 三.js图像质量模糊

javascript - 使用 javascript 从另一个 div 打印 div 或 iframe 内容

javascript - 使用 Javascript 将文本文件转换为关联数组

javascript - 在 Jest 中使用正则表达式验证隐藏的信用卡号

javascript - 使用 javascript 正则表达式选取 url 的一部分?

javascript - 可移动的 jquery 框不应移出页面

javascript - Vuex - 更新整个数组

javascript - 对 ExtJS 面板内的 HTML 元素执行 getElementById

php - 如何确保AJAX被JavaScript调用?

javascript - 通过 AJAX 发送数据到 MySQL