將JavaScript字符串拆分爲「字符」可以輕鬆完成,但如果您關心Unicode(並且您應該關心Unicode),則會出現問題。將JavaScript字符串拆分成代碼點數組? (考慮到「替代對」而不是「字形串」)
JavaScript本身將字符視爲16位實體(UCS-2 or UTF-16),但這不允許BMP (Basic Multilingual Plane)之外的Unicode字符。
要處理BMP以外的Unicode字符,JavaScript必須考慮到「surrogate pairs」,它本身不會執行此操作。
我正在尋找如何通過代碼來分割js字符串,無論代碼點是否需要一個或兩個JavaScript「字符」(代碼單元)。
根據您的需求,通過codepoint分裂可能是不夠的,你可能想通過「grapheme cluster」,其中一個集羣是一個基礎碼點,隨後所有的無間距修改點,如combining accents and diacritics分裂。
爲了這個問題的目的,我不需要通過字素集羣來分割。
對於一個現代化的解決方案來迭代字符串,同時考慮代理對,請參閱:https://stackoverflow.com/questions/1966476/javascript-process-each-letter-of-text/36392879#36392879 – hippietrail