Mootools 1.2教程(8)——输入过滤第一部分(数字)(2)

作者:Fdream 来源:Fdream博客 时间:2008-11-27 13:01:00 

$type()

$type()是另外一个来自MooTools的令人不可思议的简单和有用的东西。它可以检查你传入的无论什么变量,然后返回一个字符串,告诉你这个变量是什么类型:

参考代码:


var checkType = function(variable_to_check){
    var variable_type = $type(variable_to_check);
    alert("Variable is a : " + variable_type);
}


那里还有许多$type()方法可以检测的类型——你可以在这个Core.$type()文档中找到一个完整的列表。不过现在,我们真正关心的是怎么检测整数。如果我们在

toIntDemo()方法中使用$type()方法,那么我们就可以很容易地处理那些toInt()不能处理的输入了:

参考代码: 

var toIntDemo = function(make_me_a_number){
    //Try to make the input number
    var number = make_me_a_number.toInt();
 
    //If That didn't work, set number to 0
    if ($type(number) != 'number'){number = 0;}
    alert('Best Attempt : ' + number);
}


当我们把它们和changeColor()方法组合起来,我们就可以得到一个几乎接近完美的解决方案了:

参考代码: 


var changeColor_2 = function(red_value, green_value, blue_value){
    //Try to make sure everything is an integer
    red_value = red_value.toInt();
    green_value = green_value.toInt();
    blue_value = blue_value.toInt();
 
    //Set default values on anything thats Not a Number
    if ($type(red_value)   != 'number'){red_value = 0;}
    if ($type(green_value) != 'number'){green_value = 0;}
    if ($type(blue_value)  != 'number'){blue_value = 0;}
 
    //Calculate hex value
    var color = [red_value, green_value, blue_value].rgbToHex(); 
    alert('Converts to : ' + color); 
}


最后一个方法中传给rgbToHex()方法的数字超过了RGB允许值0-255的范围,这个值还是被忠实地转换成了它的十六进制值。不幸的是,这意味着我们接受了一个超过那个范围的数字,我们将不能得到一个有效的十六进

制颜色值。幸运的是,MooTools中哎呦另外一个方法,我们可以用来处理这个问题。

limit()

MooTools中的limit()方法也是非常简单直接的。你可以在一个数字上面调用这个方法,传入一个这个数字允许的最小值和一个允许的最大值作为参

数,它会自动地进行舍入处理。你还需要牢记这一点:limit方法需要传入整数参数,因此一般在使用limit方法之前先对你要指定为数字的东西(或者其他在数字集合(

Number Collection)里面的东西)使用toInt()方法。

参考代码:

var limitDemo = function(number_to_limit){
    //Do our best to get an integer
    number_to_limit = number_to_limit.toInt();
 
    //Get the limited value
    var limited_number = number_to_limit.limit(0, 255);
    alert("Number Limited To : " + limited_number);
}

标签:mootools,过滤,数字,教程,javascript
0
投稿

猜你喜欢

  • 为什么视觉设计师需要懂HTML

    2009-06-25 14:16:00
  • asp中如何过滤到单引号

    2009-07-05 18:38:00
  • debug case: onsubmit=return false依然能提交

    2009-01-18 13:07:00
  • asp如何将RGB颜色转化成到16进制的?

    2009-11-26 20:41:00
  • asp如何显示存储在数据库BLOB字段中的图像?

    2010-06-08 09:31:00
  • 优化Oracle库表设计的若干方法

    2010-07-16 13:24:00
  • centos 安装mysql中遇到问题的解决办法

    2010-12-14 15:11:00
  • ASP使用fso遍历文件及文件夹列出文件名

    2008-10-27 19:32:00
  • 网页设计应急小技巧

    2011-10-05 18:52:57
  • SQL Server 2000里的数据类型

    2011-06-11 14:07:00
  • 如何实现对整个站点所有页面的操作?

    2010-05-19 21:20:00
  • Js的MessageBox

    2008-05-16 10:25:00
  • rs.open sql,conn,1,1与rs.open sql,conn,1.3还有rs.open sql,conn,3,2区别

    2011-02-24 10:49:00
  • [设计]DREAMWEAVER 问题集锦

    2010-09-02 12:31:00
  • MySQL数据库中修改密码及访问限制设置详解

    2009-09-01 14:19:00
  • xhtml+css VS div+css

    2008-04-07 13:00:00
  • 一个滑动展示的小代码

    2011-07-01 12:58:05
  • ASP存储过程应用全接触

    2007-08-18 14:28:00
  • asp检测是否为中文字符函数

    2011-04-07 11:19:00
  • IE里模拟DOMContentLoaded事件

    2008-08-05 17:12:00
  • asp之家 网络编程 m.aspxhome.com