zoukankan      html  css  js  c++  java
  • 常用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", _w + "px", height: _h + "px", frameborder: "no", margin "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;

  • 相关阅读:
    PAT A1094 The Largest Generation (25 分)——树的bfs遍历
    PAT A1055 The World's Richest (25 分)——排序
    PAT A1052 Linked List Sorting (25 分)——链表,排序
    PAT A1076 Forwards on Weibo (30 分)——图的bfs
    辅导员
    辅导员面试
    C程序设计
    Excel VBA 基本概念
    Excel函数
    导入excel表的数据到数据库ssh
  • 原文地址:https://www.cnblogs.com/beijia/p/js_summary.html
Copyright © 2011-2022 走看看