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

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

_MBK_

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

_MBK_

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

_MBK_

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

Oleg Butrin

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

_MBK_

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

Oleg Butrin

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

_MBK_

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

_MBK_

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

Oleg Butrin

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

_MBK_

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

Flame

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

_MBK_

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