<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Уроки PHP, Mootools, JavaScript, ActionScript, HTML, CSS &#187; фильтрация</title>
	<atom:link href="http://php.infoniac.ru/tag/%d1%84%d0%b8%d0%bb%d1%8c%d1%82%d1%80%d0%b0%d1%86%d0%b8%d1%8f/feed/" rel="self" type="application/rss+xml" />
	<link>http://php.infoniac.ru</link>
	<description>Уроки программирования от новичка новичкам</description>
	<lastBuildDate>Thu, 09 Feb 2012 11:09:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Уроки Mootools – Урок 8 – Учимся фильтровать числа</title>
		<link>http://php.infoniac.ru/mootools-filtering-numbers.html</link>
		<comments>http://php.infoniac.ru/mootools-filtering-numbers.html#comments</comments>
		<pubDate>Fri, 24 Jul 2009 13:40:53 +0000</pubDate>
		<dc:creator>proglammer</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Уроки новичка]]></category>
		<category><![CDATA[уроки]]></category>
		<category><![CDATA[фильтрация]]></category>
		<category><![CDATA[числа]]></category>

		<guid isPermaLink="false">http://php.infoniac.ru/?p=551</guid>
		<description><![CDATA[В этом уроке я покажу методы фильтрации чисел с помощью Mootools. Такие методы хороши в качестве превентивных мер обороны, но обороняться нужно "тяжелой артиллерией", т.е. серверными инструментами (PHP, ASP и т.д. - в зависимости от предпочтений и умений программиста и возможностей сервера). Но часто, превентивные меры уже хорошо справляются с защитой, потому их тоже надо знать!]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><div style="text-align:center;width:100%;margin:10px 0px 10px 0px;"><div style="margin:auto;"><script type="text/javascript"><!--
google_ad_client = "pub-8205915997794532";
/* 728x90, создано 08.12.10 */
google_ad_slot = "3730215141";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></div><div style="width:100%;min-width:100%;"><p>Продолжаем наши уроки Mootools и сегодня рассмотрим, как можно использовать Mootools для фильтрации пользовательских данных. Начнем с простой фильтрации чисел, а потом продолжим с фильтрацией текстовых строк в следующем уроке.</p>
<p><strong>Примечание</strong>:Фильтрация входящих данных в Javascript используется для того, чтобы обеспечить нормальную работу ваших скриптов. Не нужно использовать ее для полной замены серверной фильтрации, которая используется для защиты приложений от внешних атак.</p>
<h2>Числа</h2>
<p>Помните, в <a href="http://php.infoniac.ru/mootools-tutorial-day-4-functions.html">4-м уроке</a> мы брали значения текстовых полей, отображающих RGB значения цветов, и использовали их для замены фонового цвета страницы, а сегодня мы снова возьмем за основу этот код, приделав к нему небольшие модификации.</p>
<h3>rgbToHex()</h3>
<p>С точки зрения структуры, функция rgbToHex() принадлежит коллекции функции для работы с массивами. Но, т.к. эта функция для работы с числовыми массивами, мы будем рассматривать ее именно в этом уроке. С точки зрения предназначения и использования, функция rbgtoHex() вполне проста:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">function</span> changeColor<span style="color: rgb(0, 153, 0);">(</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>

  	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> color <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 153, 0);">[</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">]</span>.<span style="color: rgb(102, 0, 102);">rgbToHex</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

   	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Конвертируется в : '</span> <span style="color: rgb(51, 153, 51);">+</span> color<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
   <span style="color: rgb(0, 153, 0);">}</span>
     changeColor<span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'5'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'41'</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(51, 102, 204);">'18'</span><span style="color: rgb(0, 153, 0);">)</span></pre>
</div>
</div>
<p><button id="change_color_1_good" class="demo_button">changeColor(‘54′, ‘41′, ‘18′);</button></p>
<p>Этот код идеально работает, если передавать в качестве аргументов цифры. Посмотрите, как поведет себя браузер, когда вместо одного из аргументов мы передадим текст:</p>
<p><button id="change_color_1_bad" class="demo_button">changeColor(‘54′, ‘41′, ‘опля’);</button></p>
<p>«Nan» виднеющийся в конце сообщения имеет значение <strong>N</strong>ot <strong>a</strong> <strong>N</strong>umber (Не Число). Если именно вы вводите вручную массив цифр для значения цвета, такой ошибки может вы и не увидите. Но если используется какой-либо внешний источник, очень вероятно, что придется частенько почитывать такие ошибочки.</p>
<h3>toInt()</h3>
<p>Теперь нам нужно убедиться в том, что фукнция <strong>rgbToHex()</strong> получает в качестве аргумента, именно числа, а не данные в каком-либо другом формате. Для этого мы можем использовать функцию <strong>toInt()</strong> – это еще одна относительно простая и понятная функция. Ей можно передать любую переменную, а она позаботится о том, чтобы извлеч из данных этой переменной число.</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> toIntDemo <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>make_me_a_number<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>

<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> number <span style="color: rgb(51, 153, 51);">=</span> make_me_a_number.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
<span style="color: rgb(0, 0, 102);">alert</span> <span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Что получилось : '</span> <span style="color: rgb(51, 153, 51);">+</span> number<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p><button id="to_int_1">toIntDemo(’613.234′)</button><br />
<button id="to_int_2">toIntDemo(’83_ура!’)</button><br />
<button id="to_int_3">toIntDemo(’а_нет_ли_тут_26?’)</button></p>
<p>Ну вот! Как видно, toInt() несправляется с каждой неоднозначной ситуацией, но, благодяра другой классной вещи в Mootools, которая называется $type(), мы можем спокойно разобраться и с этой проблемкой!</p>
<h3>$type()</h3>
<p><strong>$type()</strong> – это еще одна вкусняшка нашей любимой библиотеки. Она анализирует переданную ей перменную и возвращает текстовую строку с названием типа данных, которому придлажала переменная. Что-то я тут запутал… Лучше разюерем на примере:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> checkType <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>variable_to_check<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> variable_type <span style="color: rgb(51, 153, 51);">=</span> $type<span style="color: rgb(0, 153, 0);">(</span>variable_to_check<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"Данные являются типом : "</span> <span style="color: rgb(51, 153, 51);">+</span> variable_type<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p><button id="type_number" class="demo_button">checkType(43)</button><button id="type_string" class="demo_button">checkType(’a string’)</button><button id="type_boolean" class="demo_button">checkType(false)</button></p>
<p></p>
<p>На самом деле, <strong>функция $type()</strong> не ограничивается определением этих трех типов данных. <strong>$type()</strong> возвращает следующие значения в текстовой форме:</p>
<ul>
<li>&#8216;element&#8217; – Если переданный объект является элементом DOMa</li>
<li>&#8216;textnode&#8217; – текстовый элемент DOMa.</li>
<li>&#8216;whitespace&#8217; – пустое пространство DOMa.</li>
<li>&#8216;arguments&#8217; – аргумент.</li>
<li>&#8216;array&#8217; – массив.</li>
<li>&#8216;object&#8217; – объект.</li>
<li>&#8216;string&#8217; – текстовая строка.</li>
<li>&#8216;number&#8217; – число.</li>
<li>&#8216;date&#8217; – дата.</li>
<li>&#8216;boolean&#8217; – булев тип.</li>
<li>&#8216;function&#8217; – функция.</li>
<li>&#8216;regexp&#8217; – регулярной выражение.</li>
<li>&#8216;class&#8217; – класс (созданный с помощью new Class или является расширением другого класса).</li>
<li>‘collection’ – когда переданный объект – это набор из html-элементов, как при вызове <strong>childNodes</strong>, <strong>getElementsByTagName</strong>, и т.д.</li>
<li>‘window’ – окно.</li>
<li>‘document’ – документ.</li>
<li>false – (<em>булев тип</em> – единственный в своем роде при использовании <strong>$type()</strong>) Возвращается тогда, когда объект имеет тип undefined, null, NaN или ни один ииз вышеперечисленных.</li>
</ul>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> toIntDemo <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>make_me_a_number<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//попробуем сделать число из введенного текста</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> number <span style="color: rgb(51, 153, 51);">=</span> make_me_a_number.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Если это не срабатывает, устанавливаем число ноль (0)</span>
	<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>number<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>number <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>

	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Что получилось : '</span> <span style="color: rgb(51, 153, 51);">+</span> number<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p>  <button id="to_int_4">toIntDemo_2(’613.234?)</button></p>
<p>  <button id="to_int_5">toIntDemo_2(’83_Ё_моЁ!’)</button><br />
  <button id="to_int_6">toIntDemo_2(’а_что_если_83?)</button></p>
<p>Если соединить все это воедино, получиться <strong>почти</strong> идеальная версия нашего скрипта по конвертированию цветов из формата RGB в шестнадцатиричный код – changeColor():</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> changeColor_2 <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>

	<span style="color: rgb(0, 102, 0); font-style: italic;">//Убедимся в том, что у нас все данные - числа</span>
&nbsp;
    red_value <span style="color: rgb(51, 153, 51);">=</span> red_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    green_value <span style="color: rgb(51, 153, 51);">=</span> green_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

    blue_value <span style="color: rgb(51, 153, 51);">=</span> blue_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
    <span style="color: rgb(0, 102, 0); font-style: italic;">//Устанавливаем значения по умолчанию на всё, что не является числом</span>
&nbsp;
    <span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>red_value<span style="color: rgb(0, 153, 0);">)</span>   <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>red_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>

    <span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>green_value<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>green_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>
    <span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>blue_value<span style="color: rgb(0, 153, 0);">)</span>  <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>blue_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>

    <span style="color: rgb(0, 102, 0); font-style: italic;">//Вычисляем шестнадцатиричное значение</span>
&nbsp;
    <span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> color <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 153, 0);">[</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">]</span>.<span style="color: rgb(102, 0, 102);">rgbToHex</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

    <span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Конвертируется в : '</span> <span style="color: rgb(51, 153, 51);">+</span> color<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p><button id="change_color_2_clean">changeColor(‘208′, ‘127′, ‘74′);</button><br />
<button id="change_color_2_default">changeColor(‘82′, ‘7′, ‘скунс’);</button></p>
<p><button id="change_color_2_breaks">changeColor(‘522′, ‘847′, »);</button></p>
<p>Обратите внимание, что последняя кнопка передает числа куда более высокие, чем могут приминать цвета в формате RGB (0-255), а это, нужно сказать, делает шестнадцатиричное число не особо пригодным для обозначения цветов. К сожалению, это означает, что если мы получим число большее или меньшее диапазона 0-255, мы не получим шестнадцатиричного значения цвета. К счастью, Mootools поможет нам забыть и об этой проблеме.</p>
<h3>limit()</h3>
<p>Функция <strong>limit()</strong> не выдиляется сложностью, т.к. этим словом ее охарактеризовать нельзя. Она помогает удержать числа в заданном диапазоне:</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 102, 0); font-style: italic;">//вызываем функцию</span>
limit<span style="color: rgb(0, 153, 0);">(</span>n1<span style="color: rgb(51, 153, 51);">,</span> n2<span style="color: rgb(0, 153, 0);">)</span>

<span style="color: rgb(0, 102, 0); font-style: italic;">//где n1 наименьшее число требуемого диапазона</span>
<span style="color: rgb(0, 102, 0); font-style: italic;">// а n2 - наивысшее</span></pre>
</div>
</div>
<p>Ничего сложного! Елинственное «но», это то, что нужно иметь ввиду, что функция предполагает, что <em>n1</em> и <em>n2</em> – это числа. Поэтому крайне рекомендуется применять <strong>toInt()</strong> к данным, которые предположительно являются числами и которые предствоит передавать в функцию <strong>limit()</strong> (или любую другую функцию для работы с числами).</p>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> limitDemo <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>number_to_limit<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Получаем число</span>
&nbsp;
	number_to_limit <span style="color: rgb(51, 153, 51);">=</span> number_to_limit.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//получаем число из требуемого диапазона</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> limited_number <span style="color: rgb(51, 153, 51);">=</span> number_to_limit.<span style="color: rgb(102, 0, 102);">limit</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(204, 0, 0);">255</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">"Ограничиваем до : "</span> <span style="color: rgb(51, 153, 51);">+</span> limited_number<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p>  <button id="limit_demo">limitDemo(6535634);</button></p>
<h3>А вот и полный рецепт</h3>
<div class="wp_syntax">
<div class="code">
<pre class="javascript" style="font-family: monospace;"><span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> changeColor <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 51, 102); font-weight: bold;">function</span><span style="color: rgb(0, 153, 0);">(</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>

	<span style="color: rgb(0, 102, 0); font-style: italic;">//Убеждаемся, что все данные у нас - это числа</span>
&nbsp;
	red_value   <span style="color: rgb(51, 153, 51);">=</span> red_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	green_value <span style="color: rgb(51, 153, 51);">=</span> green_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

	blue_value  <span style="color: rgb(51, 153, 51);">=</span> blue_value.<span style="color: rgb(102, 0, 102);">toInt</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Устанавливаем значения по умолчанию на все, что не является числом</span>
	<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>red_value<span style="color: rgb(0, 153, 0);">)</span>   <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>red_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>

	<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>green_value<span style="color: rgb(0, 153, 0);">)</span> <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>green_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>

	<span style="color: rgb(0, 0, 102); font-weight: bold;">if</span> <span style="color: rgb(0, 153, 0);">(</span>$type<span style="color: rgb(0, 153, 0);">(</span>blue_value<span style="color: rgb(0, 153, 0);">)</span>  <span style="color: rgb(51, 153, 51);">!=</span> <span style="color: rgb(51, 102, 204);">'number'</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(0, 153, 0);">{</span>blue_value <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">;</span><span style="color: rgb(0, 153, 0);">}</span>

&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Ограничиваем все до диапазона значений RGB (0 - 255)</span>
&nbsp;
	red_value   <span style="color: rgb(51, 153, 51);">=</span> red_value.<span style="color: rgb(102, 0, 102);">limit</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(204, 0, 0);">255</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

	green_value <span style="color: rgb(51, 153, 51);">=</span> green_value.<span style="color: rgb(102, 0, 102);">limit</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(204, 0, 0);">255</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
&nbsp;
	blue_value  <span style="color: rgb(51, 153, 51);">=</span> blue_value.<span style="color: rgb(102, 0, 102);">limit</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(204, 0, 0);">0</span><span style="color: rgb(51, 153, 51);">,</span> <span style="color: rgb(204, 0, 0);">255</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>

&nbsp;
	<span style="color: rgb(0, 102, 0); font-style: italic;">//Конвертируем в шестнадцатиричную систему</span>
	<span style="color: rgb(0, 51, 102); font-weight: bold;">var</span> color <span style="color: rgb(51, 153, 51);">=</span> <span style="color: rgb(0, 153, 0);">[</span>red_value<span style="color: rgb(51, 153, 51);">,</span> green_value<span style="color: rgb(51, 153, 51);">,</span> blue_value<span style="color: rgb(0, 153, 0);">]</span>.<span style="color: rgb(102, 0, 102);">rgbToHex</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span>
	<span style="color: rgb(0, 0, 102);">alert</span><span style="color: rgb(0, 153, 0);">(</span><span style="color: rgb(51, 102, 204);">'Converts to : '</span> <span style="color: rgb(51, 153, 51);">+</span> color<span style="color: rgb(0, 153, 0);">)</span><span style="color: rgb(51, 153, 51);">;</span> 

<span style="color: rgb(0, 153, 0);">}</span></pre>
</div>
</div>
<p><button id="change_color_3_clean" class="demo_button">changeColor(’28′, ‘17′, ‘47′);</button><button id="change_color_3_default" class="demo_button">changeColor(‘28′, ‘17′, ‘oops’);</button><button id="change_color_3_limit" class="demo_button">changeColor(’428′, ‘317′,<br />
‘265000′);</button></p>
<p>Обратите внимание, что функция <strong>.rgbToHex()</strong> нигде не принимает никаких атрибутов. Это все потому, что эта функция может принять 2 атрибута булев типа: <em>true</em>, <em>false</em>. По умолчанию установлен <em>false</em>, что и возвращает нам строку в таком виде, в котором она нам нужна для вставки в атрибут цвета, т.е. &#8220;#000000&#8243;. Если же передать атрибут <em>true</em>, функция вернет данные в виде массива.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> rgb2HexTrue <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>r<span style="color: #339933;">,</span> g<span style="color: #339933;">,</span> b<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> rgbArray <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>r<span style="color: #339933;">,</span> g<span style="color: #339933;">,</span> b<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">rgbToHex</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #003366; font-weight: bold;">var</span> rgbHex <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>r<span style="color: #339933;">,</span> g<span style="color: #339933;">,</span> b<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">rgbToHex</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'rgbToHex с параметром TRUE: '</span> <span style="color: #339933;">+</span> rgbArray <span style="color: #339933;">+</span> <span style="color: #3366CC;">'и с параметром FALSE: '</span> <span style="color: #339933;">+</span> rgbHex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><button id="rgb2hexTrue">rgb2Hex(&#8217;34&#8242;, &#8217;117&#8242;, &#8217;247&#8242;)</button></p>
</div><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://php.infoniac.ru/mootools-filtering-numbers.html/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

