[ID CC-CC2021] split и юникодовский разделитель

Статус
Закрыто для дальнейших ответов.

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Столкнулся со странной проблемой. Есть строка, содержащая тире (юникодный символ \u8208) При попытке разбить ее на части words=a.split("\u8208") ничего не происходит. Это принципиальная проблема или я где то туплю? 'hmmm'
 

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Гм, когда напрямую задаешь, и вправду работает.
Зато, когда в тексте встречается слова, имеющие в составе тире (GID=882) с кодом \u8208 парсить не хочет 'hz'
 

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Мистика! У меня indexOf работает, а split - нет. Выкрутился, конечно, посимвольно разбирая слово, но как то уныло все это :(
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Покажи кусок кода, где получаешь контент как строку.
 

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Код взят целиком из индизайновского примера
Код:
var myArray = app.selection[0].paragraphs.everyItem().contents
Я уже думал, может, символ не тот, но нет, charCodeAt возвращает 8208
На других разделителях (не юникодных) split с той же строкой работает нормально
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
Добавь .toString() и будет тебе счастье.
 
  • Спасибо
Реакции: _MBK_

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852
Попробую как до 2015 доберусь
Но какая разница? Почему с неюникодными символами работает, а с юникодными нет? 'hmmm'
 

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
А у тебя на CS6 если toString убрать, работает или нет?
В простом случае -- работает. Но гарантий тут никаких, в разных комбинациях может и не сработать. Я как-то попадался на эту багофичу, с тех пор привык контент получать через принудительную конвертацию в строку.
 
  • Спасибо
Реакции: Flame

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852
В простом случае -- работает. Но гарантий тут никаких, в разных комбинациях может и не сработать. Я как-то попадался на эту багофичу, с тех пор привык контент получать через принудительную конвертацию в строку.
Гм, интересно, попробую и первым и вторым способом, жалко, что по определенным обстоятельствам я до CC2015 доберусь не раньше понедельника 'hz'
 

Flame

Unregistered user
20 лет на форуме
Сообщения
1 324
Реакции
58
charCodeAt вам в десятичном представлении возвращает, а для \u надо шестнадцатиричное
А хифен 8208 это \u2010
 
  • Спасибо
Реакции: _MBK_

_MBK_

Пикирующий бомбардировщик
Топикстартер
15 лет на форуме
Сообщения
33 235
Реакции
10 852
charCodeAt вам в десятичном представлении возвращает, а для \u надо шестнадцатиричное
А хифен 8208 это \u2010
Как всегда, правильное решение - самое банальное. Как ни смешно, но дело было именно в этом! 'otbline'
 
Статус
Закрыто для дальнейших ответов.