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

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

_MBK_

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

_MBK_

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

_MBK_

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

Oleg Butrin

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

_MBK_

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

Oleg Butrin

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

_MBK_

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

_MBK_

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

Oleg Butrin

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

_MBK_

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

Flame

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

_MBK_

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