簡體   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