[英]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
原始答案 :
split
是String.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.