实用的Javascript函数库

这些都是网络常用的函数,固收集起来一边做参考

 
 
<script language=javascript> function Node(parentId, id, openStatus, text, url, color){ this.parentId = parentId; // 父节点的id this.id = id; // 自身id this.href = url; this.color = color; this.openStatus = openStatus; // 当前的打开状态 this.haveChild = false; // 为了便于显示,增加了该属性,判断该节点是否有子节点,默认为没有 this.text = text; // 显示的文本信息 } // 定义一个数组用来保存所有的节点(Node)包括根节点(RootNode), 也可以用其他的方式来保存 var arrTree = new Array(); //为了在使得创建节点更方便点,定义了下面的函数: function createNode(parentId, id, openStatus, text, url, color){ // 这里检验一下输入的parentId是否存在,不存在则提示错误 // checkParent(parentId); // 检验输入的id是否已经存在,如果存在做相应的处理, 这里我就不写了 // checkId(id); // 设置该parentId有子节点 if( parentId > -1 ){ if(!arrTree[parentId].hasChild) arrTree[parentId].hasChild = true; } var node = new Node(parentId, id, openStatus, text, url, color); arrTree[arrTree.length] = node; } /*-1这里定义为根节点的父节点,不存在这样的节点,所以,判断节点的父节点为-1时,标识当前节点时父节点*/ createNode(-1/*上面的注释*/, 0/*节点id*/, true/*关闭*/, "实用的Javascript函数库", '','green'); createNode(0, 1, true, "trim函数: trim() lTrim() rTrim()", "#1"); createNode(0, 2, true, "校验字符串是否为空: checkIsNotEmpty(str)", "#2"); createNode(0, 3, true, "校验字符串是否为整型: checkIsInteger(str)", "#3"); createNode(0, 4, true, "校验整型最小值: checkIntegerMinValue(str,val)", "#5"); createNode(0, 5, true, "校验整型最大值: checkIntegerMaxValue(str,val) ", "#6"); createNode(0, 6, true, "校验整型是否为非负数: isNotNegativeInteger(str)", "#4"); createNode(0, 7, true, "校验字符串是否为浮点型: checkIsDouble(str) ", "#7", "blue"); createNode(0, 8, true, "校验浮点型最小值: checkDoubleMinValue(str,val)", "#8"); createNode(0, 9, true, "校验浮点型最大值: checkDoubleMaxValue(str,val)", "#9"); createNode(0, 10, true, "校验浮点型是否为非负数: isNotNegativeDouble(str)", "#10"); createNode(0, 11, true, "校验字符串是否为日期型: checkIsValidDate(str)", "#11"); createNode(0, 12, true, "校验两个日期的先后: checkDateEarlier(strStart,strEnd)", "#12"); createNode(0, 13, true, "校验字符串是否为email型: checkEmail(str) ", "#13", "blue"); createNode(0, 14, true, "校验字符串是否为中文: checkIsChinese(str)", "#14"); createNode(0, 15, true, "计算字符串的长度,一个汉字两个字符: realLength()", "#15"); createNode(0, 16, true, "校验字符串是否符合自定义正则表达式: checkMask(str,pat)", "#16"); createNode(0, 17, true, "得到文件的后缀名: getFilePostfix(oFile) ", "#17"); /* 这里简单的创建了一棵树,但是还没有显示,下面要做的就是怎么显示: 可能方法是有点笨拙,不要见怪 …. 显示树 // 这个思路很容易理解,就是从根节点开始, 在arrTree数组超找该根节点的子节点并显示, 这里用的是递归方式去遍历每棵树, 由于简单的结构很简单的想法,所以没有考虑算法的效率问题 */ function doRender(){ var r = appendNode(0) treeArea.appendChild(r); } // AppendNode(node), 将该节点的子节点加载到container里面, 就是div对象 function appendNode(id){ node = arrTree[id] var id = node.id; var area = document.createElement("div"); var expand = document.createElement("span"); var textNode = document.createElement("span"); var subarea = document.createElement("div"); var str = '' if( node.href ){ str += ''+ node.text+''; else str = node.text; } textNode.innerHTML = str; expand.style.fontFamily = 'Fixedsys'; expand.style.cursor = 'hand'; expand.style.color = 'red'; expand.style.padding = '5px'; expand.innerText = '-'; subarea.style.paddingLeft = '30px'; subarea.style.lineHeight = '2'; if( !node.openStatus ){ subarea.style.display = 'none'; } area.style.padding = '4px'; area.appendChild(expand); area.appendChild(textNode); area.appendChild(subarea); if(node.hasChild){ expand.innerText = '+'; if( node.openStatus ) {expand.innerText = '-'; } expand.onclick = function(){ if( subarea.style.display == '' ){ node.openStatus = false; this.innerHTML = '+'; subarea.style.display = 'none'; } else { node.openStatus = true; this.innerHTML = '-'; subarea.style.display = ''; } } for(var i=1/*因为根节点在0位置,所以从1开始查找*/; i < arrTree.length; i++ ){ if( arrTree[i].parentId == id ){ var c = appendNode(i); subarea.appendChild(c); } } } return area; // 返回div对象,里面包含了子树的信息 } doRender(); </script>
/'@/', 0) == -1
        || str.indexOf(/'./', 0) == -1 || str.lastIndexOf("@") == str.length-1 || str.lastIndexOf(".") == str.length-1)
        return false;
    else
        return true;
}//~~~
/*--------------------------------- email ----------------------------------------*/
/********************************** chinese ***************************************/
/**
*校验字符串是否为中文
*返回值:
*如果为空,定义校验通过,           返回true
*如果字串为中文,校验通过,         返回true
*如果字串为非中文,             返回false    参考提示信息:必须为中文!
*/
function checkIsChinese(str)
{
    //如果值为空,通过校验
    if (str == "")
        return true;
    var pattern = /^([//u4E00-//u9FA5]|[//uFE30-//uFFA0])*$/gi;
    if (pattern.test(str))
        return true;
    else
        return false;
}//~~~
/**
* 计算字符串的长度,一个汉字两个字符
*/
String.prototype.realLength = function()
{
  return this.replace(/[^//x00-//xff]/g,"**").length;
}
/*--------------------------------- chinese --------------------------------------*/
/********************************** mask ***************************************/
/**
*校验字符串是否符合自定义正则表达式
*str 要校验的字串  pat 自定义的正则表达式
*返回值:
*如果为空,定义校验通过,           返回true
*如果字串符合,校验通过,           返回true
*如果字串不符合,                   返回false    参考提示信息:必须满足***模式
*/
function checkMask(str,pat)
{
    //如果值为空,通过校验
    if (str == "")
        return true;
    var pattern = new RegExp(pat,"gi")
    if (pattern.test(str))
        return true;
    else
        return false;
}//~~~
/*--------------------------------- mask --------------------------------------*/
/********************************** file ***************************************/
/**
* added by LxcJie 2004.6.25
* 得到文件的后缀名
* oFile为file控件对象
*/
function getFilePostfix(oFile)
{
    if(oFile == null)
        return null;
    var pattern = /(.*)//.(.*)$/gi;
    if(typeof(oFile) == "object")
    {
        if(oFile.value == null || oFile.value == "")
            return null;
        var arr = pattern.exec(oFile.value);
        return RegExp.$2;
    }
    else if(typeof(oFile) == "string")
    {
        var arr = pattern.exec(oFile);
        return RegExp.$2;
    }
    else
        return null;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值