Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.01.2015, 19:02
Новичок на форуме
Отправить личное сообщение для kweb Посмотреть профиль Найти все сообщения от kweb
 
Регистрация: 30.01.2015
Сообщений: 4

Сравнение двух одинаковых строк - false
Сравниваю 2 строки одинакового содержания
1 строка "Y" - приходит как ответ сервера на ajax запрос
2 строка тоже "Y" как переменная в скрипте, который принимает запрос. Оба значения точно строки typeof() - string, значения строк визуально одинаковы! Но при сравнении выдают false!

Проблема в том, что 1 строка("Y").length = 3 (то что приходит с сервера)
2 строка("Y").length = 1 (переменная)

Как их сравнить в true? С сервера приходит строка со скрытыми символами юникода? Как этого избежать или как ее обработать?
Ответить с цитированием
  #2 (permalink)  
Старый 30.01.2015, 20:11
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,583

Примените encodeURIComponent() к приходящей строке и посмотрите что там вам довесило. Само собой строки разной длины не равны. Надо по-хорошему править серверный скрипт. По-плохому - очищать уже пришедшую строку от лишнего.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 31.01.2015, 21:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от kweb
Проблема в том, что 1 строка("Y").length = 3 (то что приходит с сервера)
2 строка("Y").length = 1 (переменная)
То мобуть просто возврат каретки и перевод строки... Просто серверный прогер нажал вконце ентер, вот ты и страдаешь... Пусть он удалит их из своего файла...
Ответить с цитированием
  #4 (permalink)  
Старый 01.02.2015, 05:52
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Может BOM?
Ответить с цитированием
  #5 (permalink)  
Старый 02.02.2015, 03:39
Профессор
Отправить личное сообщение для SV0L0CH Посмотреть профиль Найти все сообщения от SV0L0CH
 
Регистрация: 07.11.2010
Сообщений: 301

Чтобы узнать точно, надо запустить это:
[].map.call("Y", function(c){return c.charCodeAt(0);})

Только подставить получаемую строку.
Ответить с цитированием
  #6 (permalink)  
Старый 02.02.2015, 12:53
Новичок на форуме
Отправить личное сообщение для kweb Посмотреть профиль Найти все сообщения от kweb
 
Регистрация: 30.01.2015
Сообщений: 4

Сообщение от SV0L0CH Посмотреть сообщение
Чтобы узнать точно, надо запустить это:
[].map.call("Y", function(c){return c.charCodeAt(0);})

Только подставить получаемую строку.
Спасибо!
Получил следующий массив: 13,10,89, откуда видно, что перед символом "Y" имеется перевод строки и возврат каретки.

Можно ли их как-то убрать?
Ответить с цитированием
  #7 (permalink)  
Старый 02.02.2015, 14:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от kweb
Можно ли их как-то убрать?
Разумеется.
Но убирать таки лучше на сервере, а не на клиенте...
Ответить с цитированием
  #8 (permalink)  
Старый 02.02.2015, 14:53
Новичок на форуме
Отправить личное сообщение для kweb Посмотреть профиль Найти все сообщения от kweb
 
Регистрация: 30.01.2015
Сообщений: 4

Убрал так:
myServerString.trim( ) == "Y"

Спасибо за советы!
Ответить с цитированием
  #9 (permalink)  
Старый 02.02.2015, 14:54
Новичок на форуме
Отправить личное сообщение для kweb Посмотреть профиль Найти все сообщения от kweb
 
Регистрация: 30.01.2015
Сообщений: 4

Сообщение от ksa Посмотреть сообщение
Разумеется.
Но убирать таки лучше на сервере, а не на клиенте...
Так на сервере все элементарно

if(...){
die("Y");
}

откуда там спецсимволы?
Ответить с цитированием
  #10 (permalink)  
Старый 02.02.2015, 15:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,209

Сообщение от kweb
откуда там спецсимволы?
Они именно от туда.

Я в твоем серверном языке неразбираюсь... Т.ч. подсказать не смогу.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнить значение в td и поменять bgcolor AndyTitan jQuery 11 20.08.2014 17:42
Выделение двух строк в таблице при hover Kikoma (X)HTML/CSS 1 28.05.2014 05:49
Сравнение двух текстов tsigel Общие вопросы Javascript 27 27.08.2013 17:52
Сравнение строк krasovsky Javascript под браузер 5 16.08.2013 11:19
Сравнение двух строк drac0Sha Общие вопросы Javascript 17 20.08.2012 19:45