Задать вопрос
bismoney
@bismoney

Как расшифоровать сообщение USSD и вытащить нужные данные регулярками?

Привет ребята!
Прощу помощи со своей проблемой.

Есть 4g модем который использую. Но хочу получать баланс симкарты.
Процесс с получением реализовал и получаю вот такой ответ:

002D00350034003000200440002E000A00530054004100520054003A0020043A0438043D043E00200438002004410435044004380430043B044B002004370430002000320034003900200440002E002F043C04350441002E0020041F043504400432044B043500200031003400200434043D043504390020002D0020043704300020003000200440003A0020002A0032003100340023


Что если расшифровать будет:
-540 р.
START: кино и сериалы за 249 р./мес. Первые 14 дней - за 0 р: *214#


Расшифровал через: https://crypt-online.ru/crypts/text2hex/

Собствено сами вопросы.
1. Как расшифровать это в node js что бы получить все на Русском в cp1251 к примеру?
2. Как регуляркой вытащить баланс?

При том что ответ можем быть таким:
1. Ваш баланс: -450.20 р. + дальше фигня
2. Или вариант как выше, где баланс пишется сразу, без "Ваш баланс:"
Т.е может быть как с "Ваш баланс" в начале, как с минусом так и без, с копейками и без. Но всегда закрывается ".р"

Буду очень благодарен за помощь!
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Средний 5 комментариев
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
Кодировка текста - UTF16 Big Endian (она же UCS-2 BE).
Вытащить баланс - к примеру, такой регуляркой: /-?\d+(?:\.\d+)?/ (но это при условии, что баланс - это первое число, которое встречается в сообщении, а также что в нём нет разделителей тысяч)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы