繁体   English   中英

IE中的String.split

[英]String.split in IE

如果我在firefox中尝试此代码,则效果很好

 var words = String.split(new RegExp(/[\-\s]/));
 words // ["/[\-\s]/"]

IE中的相同代码不行!

 var words = String.split(new RegExp(/[\-\s]/));
 words "Object doesn't support property or method 'split'"

为什么? 在IE中修复它的最佳方法是什么?

更新

问题在于您的参数称为string (全部小写),但是在尝试拆分时使用的是String (首字母大写)。 JavaScript是区分大小写的语言, string !== String

所以改变这个:

var words = String.split(new RegExp(/[\-\s]/)),

对此:

var words = string.split(new RegExp(/[\-\s]/)),
//          ^--- lower case s

原始答案

splitString.prototype上的函数(实际上是在字符串实例上),而不是String本身(构造函数)上的函数。

所以:

var words = "some words and hyphenated-words here".split(/[\-\s]/);
console.log(words); // ["some", "words", "and", "hyphenated", "words", "here"]

附注:您不必包装正则表达式文本( /[\\-\\s]/ )在new RegExp(...)除非你周围的老的bug 问题开展工作在一些实现围绕全局标志,并将跨函数调用缓存/重用本地文字,这与split无关,因为您不使用g标志。

我不认为String对象本身具有split()方法。 split()String实例的方法:

'a b c'.split(/\s/); //returns ['a', 'b', 'c']

split方法不适用于String类,而适用于类似以下的字符串:

"abc-123 def-456".split(/[\-\s]/);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM