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
Форумы портала PHP.SU :: Версия для печати :: JavaScript проверка данных
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » JavaScript проверка данных

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

1. kochan10 - 04 Сентября, 2010 - 14:45:18 - перейти к сообщению
как проверить, что содержится в переменной? там может быть либо текст, либо число (float).
2. Саныч - 04 Сентября, 2010 - 18:35:02 - перейти к сообщению
CODE (javascript):
скопировать код в буфер обмена
  1. var test = 125;
  2. var type = (typeof test == "number") ? "number" : "text";
3. JustUserR - 05 Сентября, 2010 - 13:30:40 - перейти к сообщению
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 {/* Другая переменная */}
4. kochan10 - 05 Сентября, 2010 - 18:25:04 - перейти к сообщению
Благодарю, мне как раз флоат нуно было проверить
5. JustUserR - 06 Сентября, 2010 - 17:56:37 - перейти к сообщению
kochan10 пишет:
Благодарю, мне как раз флоат нуно было проверить
На здоровье! В языках прогаммирования с нестрогой типизацией переменных и исходных константных значениях как правило всегда имеются собственные схемы для четкого определения информации по некоторому значению - это достигается в операционном подходе путем применения явных функций конвертации и сравнения по идентичности Дело в том что при использовнии других методов можно и не получить требуемого результата - в частности встроенные основные константные JS-типы автоматически преобразуются в соответствующий object при обращении к объектом виде
6. kochan10 - 06 Сентября, 2010 - 20:43:56 - перейти к сообщению
Я пробовал проверять тип, после parsefloat, но было всёравно number. там хоть NaN было, но это он считал number'ом. пробовал сравнивать, равно ли это NaN, он говорил, что не равно
7. JustUserR - 07 Сентября, 2010 - 12:37:05 - перейти к сообщению
kochan10 пишет:
Я пробовал проверять тип, после parsefloat, но было всёравно number. там хоть NaN было, но это он считал number'ом. пробовал сравнивать, равно ли это NaN, он говорил, что не равно
В языке JS все числовые значения являющиеся как целыми так и содержащими плавающую точку представлены в общей группе - а именно константные выражения и базвые типы данных и объектные конструкторы для них неразличины Тем не менее используемый вами метод также можно применить после опредленной модификации - в частности константа NaN не равна самой себе и для сравнения используется специальная функция isNaN - это также характерно для всех языков программирования с аналогичной грамматикой
8. kochan10 - 07 Сентября, 2010 - 17:25:40 - перейти к сообщению
понятно, почему у меня не получалось)) спасибо=)
9. JustUserR - 08 Сентября, 2010 - 10:13:28 - перейти к сообщению
kochan10 пишет:
Понятно, почему у меня не получалось)) спасибо=)
Пожалуйста! Дополнительную информации об имеющихся в JS-скриптах встроенных базовых объектах и их взаимодействии и операциях объектного приведения значений вы можете посмотреть здесь http://wdh[dot]suncloud[dot]ru/js08[dot]htm - в частности в JS имеется еще одно автоматическое преобразование которое конвертирует статические константны в объекты внутри выржений Например любая строковая или числовая константа не является объектом и к ней невозможно применять операцию получения свойства или вызова метода - тем не менее в реальном JS-коде дейтсвие типа "mystring".length выполняется - это происходит благодаря тому что при использовании объектной нотации тип такого выражения автомтически преобразуется из string в object со String-конструктором по умолчанию

 

Powered by ExBB FM 1.0 RC1