2015-10-06 3 views
1

Как можно разделить иностранные символы, такие как китайский, на отдельные значения массива с помощью JavaScript?Сплит китайские символы

split(), похоже, хорошо работает с английским, но не так много с китайцами. Ниже результат двух строк

а) Привет Там

б) 你 好吗

splitString = text.split(" "); 

RESULT: ["hello", "there"] 
RESULT: ["你好吗"] 
+1

Вы, кажется, путают о природе «слова» на китайском языке. Можно считать, что у китайцев есть понятие «слова», но оно не обязательно четко определено. Вы ищете идею «сегментации», но сегментирование на китайском (и на других языках без пробелов, включая тайский, корейский и японский) - довольно сложная лингвистическая задача, которая, как уже упоминалось, добавляется в библиотеки. С другой стороны, если вы просто хотите разбить по символу, то 'String # split' делает именно то, что вы хотите в большинстве случаев. –

ответ

3

Невозможно сделать это надежно используя встроенные средства ES5 без использования каких-либо сторонних библиотек.

Правильный способ использования ванильный JS является использование ES2015 spread operator:

let splitString = [...text]; 

Примеры строк, которые вызывали бы в split -На решения на провал:

1

Вместо разделения на пространстве полукокса (которые не являются какой-либо в китайской строки), попробуйте расщепить пустую строку "", которая должна разделить каждый символ на свой собственный элемент.

+1

Он будет разбит на несколько многобайтовых символов, таких как '': ''' .split ('')' --- output '[" "," "]' (массив из 2 пустых строк) – zerkms

+0

Интересно. Полезно знать о будущем. – mitim

Смежные вопросы