常用js验证和常用方法汇总

下面是一些工作中常用的的一些js方法,现对其进行些汇总,以方便日后查看:

//通用不带关闭提示框的浏览器窗口关闭方法  
function CloseWin() {
    window.opener = null;
    //window.opener=top;   
    window.open("", "_self");
    window.close();
}
//只在一个新窗口打开链接

function openOneWin(urlObj) {
    window.open(urlObj.href, '1', '');
    return false;
}

//在一个新窗口打开链接
function openWin(url) {
   window.open(url, '_blank', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no,resizable=no,location=no, status=no');
   
    //height=100 窗口高度;
    //width=400 窗口宽度;
    //top=0 窗口距离屏幕上方的象素值;
    //left=0 窗口距离屏幕左侧的象素值;
    //toolbar=no 是否显示工具栏,yes为显示;
    //menubar,scrollbars 表示菜单栏和滚动栏。
    //resizable=no 是否允许改变窗口大小,yes为允许;
    //location=no 是否显示地址栏,yes为允许;
    //status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;

}

 

在iframe中关闭父窗体中的iframe

main.html

<html>

<head>

<title>主窗体</title>

<script type="text/javascript">

$(function(){

      $("#btnOpen").click(function(){ // 在ifram中打开链接

             openFrm(("div_mask","divContainer","http://www.baidu.com/");

      });

 

      $("#hidClose").click(function(){ // 关闭iframe窗体

             closeFrm("div_mask","divContainer");

      });

});

// 参数:0-遮罩层id;1-弹出层;2-url地址;3-iframe宽度;4-iframee高度;(高度和宽度参数为空)

function openFrm(maskId, divId, url, w, h) {
    var _w = w || 300; // 默认宽高
    var _h = h || 200;
    if ($("#" + divId + ">#myFrm").length == 0) { // iframe不存在则创建并添加到div容器
        $("<iframe></iframe>").attr(

              { id: "myFrm", width: _w + "px", height: _h + "px", frameborder: "no", marginwidth: "0", marginheight: "0", scrolling: "yes", allowtransparency: "yes", border: "0" }

        ).appendTo($("#" + divId));
    }
    document.getElementById("myFrm").src = url;

    changePopup(maskId, divId);  // 设置弹层

}

// 参数:0-遮罩层id;1-弹出层
function closeFrm(maskId, divId) {
     $("#" + divId + ">iframe").remove();  // 移除iframe

     changePopup(maskId, divId);    // 设置弹层

}

// 改变弹出层显示

function changePopup(maskId, divId) { 

    if ($('#' + maskId).css("display") == "none") {
        var left = (document.body.scrollWidth - $('#' + divId).width()) / 2;
        var top = document.body.scrollTop + 100;
        $('#' + maskId).css({ display: "block" });
        $('#' + divId).css({ display: "block", "left": left + "px", "top": top + "px" });
    } else {
        $('#' + maskId).css({ display: "none" });
        $('#' + divId).css({ display: "none" });
    }
}

</script>

</head>

<body>

<div id="div_mask" class="popup_mask"> <!-- 遮罩层-->
</div>

<input type="button" id="btnOpen" value="打开链接" />

<input type="hidden" id="hidClose"  /> <!-- 隐藏的关闭按钮-->

<div id='divContainer' class="popup_win"><!--弹出层,用于包含iframe的容器-->

</div>

</body>

</html>

 

child.html

<html>

<head>

<title>子窗体</title>

<script type="text/javascript">

$(function(){ 

      $("#btnClose").click(function(){

             // 触发父窗体按钮事件
             window.parent.document.getElementById("hidClose").click();

      });

});

</head>

<body>

<input type="button" id="btnClose" value="关闭" />

<div><h1>我是子窗体</h1></div>

</body>

</html>

 

//全选\取消效果

function ckSelectAll(tblId, ckId) {//全选复选框点击事件
    $("#" + ckId).click(function() { $("#" + tblId + " :checkbox:not([disabled])").attr("checked", this.checked); });
}

function ckSelect(tblId, ckId) {//单行复选框点击事件

    $("#" + tblId + " :checkbox[id!='" + ckId + "']").each(function() {
        $(this).click(function() {
            var flag = false;
            $("#" + tblId + " :checkbox[id!='" + ckId + "']").each(function() {
                if (!$(this).attr("checked")) { flag = true; }
            });

            if (flag) {
                $("#" + ckId).attr("checked", false);
            }
            else {
                $("#" + ckId).attr("checked", true);
            }
        });
    });
}

// 自动高度的文本框

function autoHeight(obj, default_height) {
            var s_h = obj.scrollHeight;
            if (s_h > default_height) {
                obj.style.height = s_h + "px";
            } else {
                obj.style.height = default_height + "px";
            }
 }

<textarea id="txt" style="height: 20px; overflow: hidden;" cols='20' onkeyup="autoHeight(this,20);"></textarea>

 

//截取字符串
function cutString(str, len) {

    len=parseInt(len)*2;

    var newLength = 0;
    var newStr = "";
    var chineseRegex = /[^\x00-\xff]/g;   //匹配双字节字符,一个双字节字符长度计2,ASCII字符计1

    //var chineseRegex = new RegExp("^[\u0391-\uFFE5]$"); //区别:不匹配空格
    var singleChar = "";
    var strLength = str.length;
    for (var i = 0; i < strLength; i++) {
        singleChar = str.charAt(i).toString();
        if (singleChar.match(chineseRegex) != null) {
            newLength += 2;
        }
        else {
            newLength++;
        }
        if (newLength > len) {
            break;
        }
        newStr += singleChar;
    }
    return newStr;
}

 

//检查并设置元素value的最长度
function checkMaxLength(o, maxlength) {
    var cArr = o.value.match(/[^x00-xff]/g); // 匹配双字节字符,一个双字节字符长度计2,ASCII字符计1
    var length = o.value.length + (cArr == null ? 0 : cArr.length);

    len=Math.ceil((length /2));

    if (len > parseInt(maxlength)) {

        //截取字符串
        o.value = cutString(o.value, maxlength);
    }
}


// 更改可输入文字长度提示
function changeAbleLengthTip(txtId, spanId, maxLen) {
    var cArr = $("#"+txtId).val().match(/[^x00-xff]/g); // 匹配双字节字符,一个双字节字符长度计2,ASCII字符计1
    var length = obj.value.length + (cArr == null ? 0 : cArr.length);
    var len = length / 2; // 两个字节算一个长度
    var ableLen = maxLen - Math.ceil(len);
    $("#" + spanId).text(ableLen.toString());
}

function getTextRealLength = function(txtId) {
            var text = $("#" + txtId).val();
            var charCode = null;

            var length = 0;
            for (var i = 0; i < text.length; i++) {
                var j = text.charCodeAt(i);
                if (j > 127) {
                    length += 1;
                } else {
                    length += 0.5;
                }
                continue;
            }
            //计算出当前文本的长度
            length = Math.ceil(length);
            return length;
        };

 

 

// 用正则表达式将前后空格,用空字符串替代。
String.prototype.LTrim = function() {
    return this.replace(/^[\s]+/g, "");
}
String.prototype.RTrim = function() {
    return this.replace(/[\s]+$/g, "");
}
String.prototype.Trim = function() {

    //return this.replace(/(^\s*)|(\s*$)/g, "");
    return this.LTrim().RTrim();
}

 

//提取html标签内容

String.prototype.replaceTag = function(tagName) {
        if ((typeof tagName == "string") && (/^[a-zA-Z0-9]+$/.test(tagName))) {

            var reg = new RegExp("<" + tagName + "[^>]*>([^<]*)</" + tagName + ">", "gi");
            return this.replace(reg, "$1");
            //var reg1 = new RegExp("</?" + tagName + "[^>]*?>", "gi");
            //return this.replace(reg1, "");
        } else {
            return this;
        }
    }

示例:
    var str = "sd<a target='_selp'>1111</a>asff<a target='_selp'>2222</a><A>3333</A><h1>H1</h1>";
    alert(str.replaceTag("a"));//输出:sd1111asff22223333><h1>H1</h1>

//注意点:

    //alert((typeof undefined)=="undefined"); // undefined,true
    //alert((typeof null)=="object"); //object,true
    //alert(typeof "" == "string");//string,true
    //alert(typeof [] == "object"); //object,true
    //alert(typeof {} == "object");  //object,true

 

 

//提取A标签href

c#版:

Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""]?)(?<url>[^'""\s>]+)\1[^>]*>(?<text>(?:(?!</?a\b).)*)</a>");
Match m=reg.Match(html);

string url = m.Groups["url"].Value; 

 

//获取页面地址传参

String.prototype.getQueryString = function(name) {
    var reg = new RegExp("(^|&|\\?)" + name + "=([^&]*)(&|$)"), r;
    if (r = this.match(reg)) return unescape(r[2]);
    return null;
};

function getParameters() {
    var str = location.search.substr(1)
    var reg = /([^&=]*)=([^&]*)(?=&|$)/g
    var arr;
    var results = new Array();
    while (arr = reg.exec(str)) {
        results[arr[1]] = arr[2];
    }
    return results;
}

function getSearchAsArray(srchStr) {
    var results = new Array();
    var input = unescape(srchStr.substr(1));
    if (input) {
        var srchArray = input.split("&");
        var tempArray = new Array();
        for (var i = 0; i < srchArray.length; i++) {
            tempArray = srchArray[i].split("=");
            results[tempArray[0]] = tempArray[1];
        }
    }
    return results;
}

function isUrl(str_url) {// 验证url 
    var strRegex = "^((https|http|ftp|rtsp|mms)?://)" 
                + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" // ftp的user@ 
                + "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184 
                + "|" // 允许IP和DOMAIN(域名) 
                + "([0-9a-z_!~*'()-]+\.)*" // 域名- www. 
                + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名 
                + "[a-z]{2,6})" // first level domain- .com or .museum 
                + "(:[0-9]{1,4})?" // 端口- :80 
                + "((/?)|" // a slash isn't required if there is no file name 
                + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; 
    var re = new RegExp(strRegex); 
    return re.test(str_url); 
}

 

1.验证正负整数和小数

var reg =/^-?\d+(\.\d+)?$/; 

2.验证中文

var reg = /[\u4E00-\u9FA5]/g;

3.验证时间

a)时分:

var regexObj = /^((2[0-3])|([0-1]?[0-9])):[0-5][0-9]$/;    

var regexObj = /^(20|21|22|23|[0-1]?\d):[0-5]?\d$/;

b)年月日(含闰年闰月判断):

regexObj = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) $/;

 

 //滚动条滚动到底部事件

$("#div_scroll").css("height", $(window).height() - 150).scroll(function() {
        var s_h = this.scrollHeight; // 滚动距离总长(注意不是滚动条的长度)
        var s_top = this.scrollTop;  // 滚动到的当前位置
        var h = $(this).height();     //  div的高度
        if (h + s_top == s_h) {

              // 滚动到底部时的事件处理

        }

}

 //获取时间戳

方法一:var timestamp = Date.parse(new Date()); // 把毫秒当成000显示
方法二:var timestamp = (new Date()).valueOf();  // 获取了当前毫秒的时间戳
方法三:var timestamp = new Date().getTime();    //  获取了当前毫秒的时间戳

 

//时间添加

Date.prototype.addDays = function (number) {
            if (!isNaN(number)) {
                var nowTime = this.getTime();
                return new Date(nowTime + (number) * 24 * 60 * 60 * 1000);
            } else {
                return this;
            }
 };

 

//时间格式化

Date.prototype.format = function(format)
{
         var o = {
                        "M+" : this.getMonth()+1, //month
                        "d+" : this.getDate(),    //day
                        "h+" : this.getHours(),   //hour
                        "m+" : this.getMinutes(), //minute
                        "s+" : this.getSeconds(), //second
                        "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
                        "S" : this.getMilliseconds() //millisecond
          };
          if("/(y+)/".test(format)) {

                    format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));

          }
          for(var k in o){

                    if(new RegExp("("+ k +")").test(format)){
                             format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] :("00"+ o[k]).substr((""+ o[k]).length));

                    }

           }
           return format;
}

 

json格式日期("/Date(1410019200000+0800)/")转换成js日期

function ConvertJsonDate(value)

{

return eval(value.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"));

}


// 页面隐藏js错误提示方法

function killErrors() {
return true;
}
window.onerror =killErrors;

 

posted @ 2011-11-21 12:05  贝加  阅读(457)  评论(0编辑  收藏  举报