28
我有一個字符串,我需要分割成較小的字符串與6的長度相等我嘗試使用的數組:字符串分割到相等長度的字符串
'abcdefghijklmnopqrstuvwxyz'.split(/(.{6})/)
但它返回與像這樣空字符串的數組:
["", "abcdef", "", "ghijkl", "", "mnopqr", "", "stuvwx", ""]
我有一個字符串,我需要分割成較小的字符串與6的長度相等我嘗試使用的數組:字符串分割到相等長度的字符串
'abcdefghijklmnopqrstuvwxyz'.split(/(.{6})/)
但它返回與像這樣空字符串的數組:
["", "abcdef", "", "ghijkl", "", "mnopqr", "", "stuvwx", ""]
將match
與全局標誌結合使用,而不是拆分。 {1,6}
是必要的,也包括匹配字符串的最後部分。模式默認爲貪婪,這意味着儘可能多的匹配。因此,.{1,6}
只能在字符串末尾匹配少於6個字符。
'abcdefghijklmnopqrstuvwxyz'.match(/.{1,6}/g);
結果:
["abcdef", "ghijkl", "mnopqr", "stuvwx", "yz"];
注意,返回的對象是一個真正的數組。爲了驗證:
console.log('.'.match(/./g) instanceof Array); //true
就像一個魅力!謝謝! – trumank
請注意'.'確實不*匹配任何字符。它[忽略'Lineterminator's](http://es5.github.io/#x15.10.2.8)。使用'[\ s \ S]'來確保它適用於多行字符串。 – user123444555621