JavaScript的字串排序 / String Sorting in JavaScript
要讓JavaScript排序做得好,其實並不簡單。
sort()
https://blog.darkthread.net/blog/javascript-chinese-char-sorting/
內建的sort是按照UTF-8 Byte排序。不過大家應該更想要作的是針對語文特性進行排序。黑暗執行緒有介紹過 localeCompare() 搭配"zh-Hant-TW"參數的用法,大致上可以按照筆畫進行排序。
字串中的數字 / Numbers in the String
不過更多時候,我會想要用字串中出現的「數字」進行排序。這要怎麼做呢?
我搭配正規表達式,依序取出字串中出現的數字來進行比較。如果沒有數字可比了,再使用localeCompare來做比較。
寫法有點複雜,參考CodePen吧:
https://codepen.io/pulipuli/pen/LYBbKoZ
不過目前似乎還沒有辦法讓JavaScript用注音排序。
有人有什麼建議嗎?