Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: JavaScript проверка данных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
kochan10
Отправлено: 04 Сентября, 2010 - 14:45:18
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




как проверить, что содержится в переменной? там может быть либо текст, либо число (float).
 
 Top
Саныч
Отправлено: 04 Сентября, 2010 - 18:35:02
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. var test = 125;
  2. var type = (typeof test == "number") ? "number" : "text";


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
JustUserR
Отправлено: 05 Сентября, 2010 - 13:30:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




kochan10 пишет:
Как проверить, что содержится в переменной? там может быть либо текст, либо число (float).
Язык JS позволяет использовать нестрогую типизацию переменных с автоматически преобразованием данных в выражениях которые требуют операнд нужного типа - по этой причине строка может содержать информацию которая однозначно представима в виде числа - и также встроенный числовой типа данных не обеспечивает дифференциацию целых и дробных чисел что требуется по исходной задаче
В силу указанных причин проверку типа данных в переменной можно осуществить таким образом - с испоьзование оператора идентичности для предотвращения автоматического преобразования типов
CODE (text):
скопировать код в буфер обмена
  1. if(parseInt(myvar)===myvar) {/* Целочисленная переменная */}
  2. else if(parseFlot(myvar)===myvar) {/* Переменная - число с плавающей точкой */}
  3. else if(new String(myvar)===myvar) {/* Строковая переменная */}
  4. else {/* Другая переменная */}


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
kochan10
Отправлено: 05 Сентября, 2010 - 18:25:04
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Благодарю, мне как раз флоат нуно было проверить
 
 Top
JustUserR
Отправлено: 06 Сентября, 2010 - 17:56:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




kochan10 пишет:
Благодарю, мне как раз флоат нуно было проверить
На здоровье! В языках прогаммирования с нестрогой типизацией переменных и исходных константных значениях как правило всегда имеются собственные схемы для четкого определения информации по некоторому значению - это достигается в операционном подходе путем применения явных функций конвертации и сравнения по идентичности Дело в том что при использовнии других методов можно и не получить требуемого результата - в частности встроенные основные константные JS-типы автоматически преобразуются в соответствующий object при обращении к объектом виде


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
kochan10
Отправлено: 06 Сентября, 2010 - 20:43:56
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Я пробовал проверять тип, после parsefloat, но было всёравно number. там хоть NaN было, но это он считал number'ом. пробовал сравнивать, равно ли это NaN, он говорил, что не равно
 
 Top
JustUserR
Отправлено: 07 Сентября, 2010 - 12:37:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




kochan10 пишет:
Я пробовал проверять тип, после parsefloat, но было всёравно number. там хоть NaN было, но это он считал number'ом. пробовал сравнивать, равно ли это NaN, он говорил, что не равно
В языке JS все числовые значения являющиеся как целыми так и содержащими плавающую точку представлены в общей группе - а именно константные выражения и базвые типы данных и объектные конструкторы для них неразличины Тем не менее используемый вами метод также можно применить после опредленной модификации - в частности константа NaN не равна самой себе и для сравнения используется специальная функция isNaN - это также характерно для всех языков программирования с аналогичной грамматикой


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
kochan10
Отправлено: 07 Сентября, 2010 - 17:25:40
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




понятно, почему у меня не получалось)) спасибо=)
 
 Top
JustUserR
Отправлено: 08 Сентября, 2010 - 10:13:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




kochan10 пишет:
Понятно, почему у меня не получалось)) спасибо=)
Пожалуйста! Дополнительную информации об имеющихся в JS-скриптах встроенных базовых объектах и их взаимодействии и операциях объектного приведения значений вы можете посмотреть здесь http://wdh[dot]suncloud[dot]ru/js08[dot]htm - в частности в JS имеется еще одно автоматическое преобразование которое конвертирует статические константны в объекты внутри выржений Например любая строковая или числовая константа не является объектом и к ней невозможно применять операцию получения свойства или вызова метода - тем не менее в реальном JS-коде дейтсвие типа "mystring".length выполняется - это происходит благодаря тому что при использовании объектной нотации тип такого выражения автомтически преобразуется из string в object со String-конструктором по умолчанию


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB