Сравнение двух одинаковых строк - false
Сравниваю 2 строки одинакового содержания
1 строка "Y" - приходит как ответ сервера на ajax запрос 2 строка тоже "Y" как переменная в скрипте, который принимает запрос. Оба значения точно строки typeof() - string, значения строк визуально одинаковы! Но при сравнении выдают false! Проблема в том, что 1 строка("Y").length = 3 (то что приходит с сервера) 2 строка("Y").length = 1 (переменная) Как их сравнить в true? С сервера приходит строка со скрытыми символами юникода? Как этого избежать или как ее обработать? |
Примените encodeURIComponent() к приходящей строке и посмотрите что там вам довесило. Само собой строки разной длины не равны. Надо по-хорошему править серверный скрипт. По-плохому - очищать уже пришедшую строку от лишнего.
|
Цитата:
|
Может BOM?
|
Чтобы узнать точно, надо запустить это:
[].map.call("Y", function(c){return c.charCodeAt(0);}) Только подставить получаемую строку. |
Цитата:
Получил следующий массив: 13,10,89, откуда видно, что перед символом "Y" имеется перевод строки и возврат каретки. Можно ли их как-то убрать? |
Цитата:
Но убирать таки лучше на сервере, а не на клиенте... |
Убрал так:
myServerString.trim( ) == "Y" Спасибо за советы! |
Цитата:
if(...){ die("Y"); } откуда там спецсимволы? |
Цитата:
Я в твоем серверном языке неразбираюсь... Т.ч. подсказать не смогу. :no: |
Часовой пояс GMT +3, время: 15:43. |