[英]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.