Javascript.RU

PHP-функция: intval

Javascript:

function intval( mixed_var, base ) {	// Get the integer value of a variable
	// 
	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

	var tmp;

	if( typeof( mixed_var ) == 'string' ){
		tmp = parseInt(mixed_var);
		if(isNaN(tmp)){
			return 0;
		} else{
			return tmp.toString(base || 10);
		}
	} else if( typeof( mixed_var ) == 'number' ){
		return Math.floor(mixed_var);
	} else{
		return 0;
	}
}

Примеры:

intval('Kevin van Zonneveld');
0

intval(4.2);
4

intval(42, 8);
42


Автор: Гость (не зарегистрирован), дата: 6 декабря, 2011 - 10:00
#permalink

intval(-2.5) вернет -3 (из-за Math.floor());
В PHP intval(-2.5) вернет -2


Автор: Londeren, дата: 23 декабря, 2011 - 13:22
#permalink

В php intval('08') вернет 8.
Эта функция возвращает 0.


Автор: Kagami Sorano (не зарегистрирован), дата: 6 июня, 2014 - 16:55
#permalink

Вот более хороший вариант. Отличие от php лишь в том, что нет второго аргумента base. В остальном окей. Или сможете найти ошибку?

function intval(num)
{
	//Author: Kagami Sorano 
	if (typeof num == 'number' || typeof num == 'string')
	{
		num = num.toString();
		var dotLocation = num.indexOf('.');
		if (dotLocation > 0)
		{//Ампутация дробной части
			num = num.substr(0, dotLocation);
		}
		if (isNaN(Number(num)))
		{
			num = parseInt(num);
		}
		if (isNaN(num))
		{
			return 0;
		}
		return Number(num);
	}
	else if (typeof num == 'object' && num.length != null && num.length > 0)
	{//Непустой массив/объект -> 1
		return 1;
	}
	else if (typeof num == 'boolean' && num === true)
	{//true -> 1
		return 1;
	}
	return 0;//Чуть что не так - сразу в ноль
}

Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
10 + 8 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum