整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JS常用正則表達式大全

          JS常用正則表達式大全

          一般開發中,由于要經常使用正則驗證,每次都要反復找,很麻煩,所以把這些常用的收集起來,以后用的時候可以直接復制粘貼。

          手機號、電話、郵箱、QQ、微信、郵政

          手機號(嚴謹), 根據工信部2019年最新公布的手機號段

          /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-7|9])|(?:5[0-3|5-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[1|8|9]))\d{8}$/

          中國手機號(寬松), 只要是13,14,15,16,17,18,19開頭即可

          /^(?:(?:\+|00)86)?1[3-9]\d{9}$/

          中國手機號(最寬松), 只要是1開頭即可

          /^(?:(?:\+|00)86)?1\d{10}$/

          國內座機電話,如: 0341-86091234

          /\d{3}-\d{8}|\d{4}-\d{7}/

          電話(座機)

          /^0\d{2,3}-\d{7,8}$/

          郵箱地址(email)

          /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

          微信號,6至20位,以字母開頭,字母,數字,減號,下劃線

          /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/

          是否qq號格式正確

          /^[1-9][0-9]{4,10}$/

          中國郵政編碼

          /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/

          姓名

          中文姓名

          /^(?:[\u4e00-\u9fa5·]{2,16})$/

          英文姓名

          /(^[a-zA-Z]{1}[a-zA-Z\s]{0,20}[a-zA-Z]{1}$)/

          日期

          普通日期

          /^\d{4}(-)(1[0-2]|0?\d)([0-2]\d|\d|30|31)$/

          24小時制時間(HH:mm:ss)

          /^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/

          12小時制時間(hh:mm:ss)

          /^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$/

          一年的12個月(01~09和1~12)

          /^(0?[1-9]|1[0-2])$/

          一個月的31天(01~09和1~31)

          /^((0?[1-9])|((1|2)[0-9])|30|31)$/

          身份、護照、信用編碼

          一代身份證號(15位數字)

          /^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$/

          二代身份證號(18位數字),最后一位是校驗位,可能為數字或字符X

          /^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$/

          身份證號, 支持1/2代(15位/18位數字)

          /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/

          護照(包含香港、澳門)

          /(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/

          統一社會信用代碼

          /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/

          IP、端口號、協議、子網掩碼、網址

          ip-v4

          /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/

          ip-v6

          /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/

          必須帶端口號的網址(或ip)

          /^(((ht|f)tps?):\/\/)?[\w\-]+(\.[\w\-]+)+:\d{0,5}\/?/

          網址(支持端口和"?+參數"和"#+參數)

          /^(((ht|f)tps?):\/\/)?[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/

          子網掩碼

          /^(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])){3}$/

          文件格式

          視頻鏈接地址(視頻格式可按需增刪)

          /^https?:\/\/.*?(?:swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4)$/i

          圖片鏈接地址(圖片格式可按需增刪)

          /^https?:\/\/.*?(?:gif|png|jpg|jpeg|webp|svg|psd|bmp|tif)$/i

          linux"文件夾"路徑

          /^\/(\w+\/?)+$/

          linux"文件"路徑

          /^\/(\w+\/)+\w+\.\w+$/

          window下"文件夾"路徑

          /^[a-zA-Z]:\(?:\w+\?)*$/

          window下"文件"路徑

          /^[a-zA-Z]:\\(?:\w+\\)*\w+\.\w+$/
          
          
          
          
          

          base64格式

          /^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*?)\s*$/i

          md5格式(32位)

          /^[a-f0-9]{32}$/

          xml文件

          /^([a-zA-Z]+-?)+[a-zA-Z0-9]+\.[x|X][m|M][l|L]$/

          車牌號碼

          新能源車牌號

          /[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-HJ-NP-Z]{1}(([0-9]{5}[DF])|([DF][A-HJ-NP-Z0-9][0-9]{4}))$/

          非新能源車牌號

          /^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-HJ-NP-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/

          車牌號(新能源+非新能源)

          /^(?:[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-HJ-NP-Z]{1}(?:(?:[0-9]{5}[DF])|(?:[DF](?:[A-HJ-NP-Z0-9])[0-9]{4})))|(?:[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領 A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9 掛學警港澳]{1})$/

          特殊需求表達式

          版本號格式必須為X.Y.Z

          /^\d+(?:\.\d+){2}$/

          帳號是否合法(字母開頭,允許5-16字節,允許字母數字下劃線組合

          /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/

          純中文/漢字

          /^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/

          是否小數

          /^\d+\.\d+$/

          純數字

          /^\d{1,}$/

          是否html標簽(寬松匹配)

          /<(.*)>.*<\/>|<(.*) \/>/

          是否由數字和字母組成

          /^[A-Za-z0-9]+$/

          純英文字母

          /^[a-zA-Z]+$/

          純小寫英文字母組成

          /^[a-z]+$/

          純大寫英文字母

          /^[A-Z]+$/

          密碼強度正則,最少6位,包括至少1個大寫字母,1個小寫字母,1個數字,1個特殊字符

          /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/

          用戶名正則,4到16位(字母,數字,下劃線,減號)

          /^[a-zA-Z0-9_-]{4,16}$/

          16進制顏色

          /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/

          只包含中文和數字

          /^((?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])|(\d))+$/

          不能包含字母

          /^[^A-Za-z]*$/

          avaScript語法:

          DOM操作:

          • 數據類型
          • 面向對象
          • 繼承
          • 閉包
          • 插件
          • 作用域
          • 跨域
          • 原型鏈
          • 模塊化
          • 自定義事件
          • 內存泄漏
          • 事件機制
          • 異步裝載回調
          • 模板引擎
          • JSON
          • ajax

          JavaScript事件觸發:

          onkeypress 在用戶按下并放開任何字母數字鍵時發生。系統按鈕(例如,箭頭鍵和功能鍵)無法得到識別。[響應一個鍵]
          onkeyup 在用戶放開任何先前按下的鍵盤鍵時發生。
          onkeydown 在用戶按下任何鍵盤鍵(包括系統按鈕,如箭頭鍵和功能鍵)時發生。[響應幾個鍵的組合]可以響應Ctrl、Alt、Shift等功能鍵和鍵的組合,而onkeypress不能
          onfocusout 失去光標事件
          onfocus 獲得光標事件
          onabort 圖片下載被打斷時
          onblur 元素失去焦點時
          onclick 鼠標點擊
          ondblclick 鼠標雙擊
          onerror 加載文檔或圖片發生錯誤時
          onmousedown 鼠標被按下時
          onmousemove 鼠標被移動時
          onmouseout 鼠標離開元素時
          onmouseover 鼠標經過元素時
          onmouseup 釋放鼠標按鍵時
          onunload 用戶離開頁面時
          

          100個原生JavaScript使用功能代碼片段

          目錄

          1.原生JavaScript實現字符串長度截取

          2.原生JavaScript獲取域名主機

          3.原生JavaScript清除空格

          4.原生JavaScript替換全部

          5.原生JavaScript轉義html標簽

          6.原生JavaScript還原html標簽

          7.原生JavaScript判斷是否為數字類型

          8.原生JavaScript時間日期格式轉換

          9.原生JavaScript設置cookie值

          10.原生JavaScript獲取cookie值

          11.原生JavaScript加入收藏夾

          12.原生JavaScript設為首頁

          13.原生JavaScript判斷IE6

          14.原生JavaScript加載樣式文件

          15.原生JavaScript返回腳本內容

          16.原生JavaScript清除腳本內容

          17.原生JavaScript動態加載腳本文件

          18.原生JavaScript返回按ID檢索的元素對象

          19.原生JavaScript返回瀏覽器版本內容

          20.原生JavaScript元素顯示的通用方法

          21.原生JavaScript中有insertBefore方法,可惜卻沒有insertAfter方法?用如函數實現

          22.原生JavaScript中兼容瀏覽器綁定元素事件

          23.原生JavaScript光標停在文字的后面,文本框獲得焦點時調用

          24.原生JavaScript檢驗URL鏈接是否有效

          25.原生JavaScript格式化CSS樣式代碼

          26.原生JavaScript壓縮CSS樣式代碼

          27.原生JavaScript獲取當前路徑

          28.原生JavaScriptIP轉成整型

          29.原生JavaScript整型解析為IP地址

          30.原生JavaScript實現checkbox全選與全不選

          31.原生JavaScript判斷是否移動設備

          32.原生JavaScript判斷是否移動設備訪問

          33.原生JavaScript判斷是否蘋果移動設備訪問

          34.原生JavaScript判斷是否安卓移動設備訪問

          35.原生JavaScript判斷是否Touch屏幕

          36.原生JavaScript判斷是否在安卓上的谷歌瀏覽器

          37.原生JavaScript判斷是否打開視窗

          38.原生JavaScript獲取移動設備初始化大小

          39.原生JavaScript獲取移動設備最大化大小

          40.原生JavaScript獲取移動設備屏幕寬度

          41.原生JavaScript完美判斷是否為網址

          42.原生JavaScript根據樣式名稱檢索元素對象

          43.原生JavaScript判斷是否以某個字符串開頭

          44.原生JavaScript判斷是否以某個字符串結束

          45.原生JavaScript返回IE瀏覽器的版本號

          46.原生JavaScript獲取頁面高度

          47.原生JavaScript獲取頁面scrollLeft

          48.原生JavaScript獲取頁面可視寬度

          49.原生JavaScript獲取頁面寬度

          50.原生JavaScript獲取頁面scrollTop

          51.原生JavaScript獲取頁面可視高度

          52.原生JavaScript跨瀏覽器添加事件

          53.原生JavaScript跨瀏覽器刪除事件

          54.原生JavaScript去掉url前綴

          55.原生JavaScript隨機數時間戳

          56.原生JavaScript全角半角轉換,iCase: 0全到半,1半到全,其他不轉化

          57.原生JavaScript確認是否鍵盤有效輸入值

          58.原生JavaScript獲取網頁被卷去的位置

          59.原生JavaScript另一種正則日期格式化函數+調用方法

          60.原生JavaScript時間個性化輸出功能

          61.原生JavaScript解決offsetX兼容性問題

          62.原生JavaScript常用的正則表達式

          63.原生JavaScript實現返回頂部的通用方法

          64.原生JavaScript獲得URL中GET參數值

          65.原生JavaScript實現全選通用方法

          66.原生JavaScript實現全部取消選擇通用方法

          67.原生JavaScript實現打開一個窗體通用方法

          68.原生JavaScript判斷是否為客戶端設備

          69.原生JavaScript獲取單選按鈕的值

          70.原生JavaScript獲取復選框的值

          71.原生JavaScript判斷是否為郵箱

          72.原生JavaScript判斷是否有列表中的危險字符

          73.原生JavaScript判斷字符串是否大于規定的長度

          74.原生JavaScript判斷字符串是為網址不區分大小寫

          75.原生JavaScript判斷字符串是否為小數

          76.原生JavaScript判斷字符串是否為整數

          77.原生JavaScript判斷字符串是否為浮點數

          78.原生JavaScript判斷字符是否為A-Za-z英文字母

          79.原生JavaScript判斷字符串是否郵政編碼

          80.原生JavaScript判斷字符是否空NULL

          81.原生JavaScript用正則表達式提取頁面代碼中所有網址

          82.原生JavaScript用正則表達式清除相同的數組(低效率)

          83.原生JavaScript用正則表達式清除相同的數組(高效率)

          84.原生JavaScript用正則表達式按字母排序,對每行進行數組排序

          85.原生JavaScript字符串反序

          86.原生JavaScript用正則表達式清除html代碼中的腳本

          87.原生JavaScript動態執行JavaScript腳本

          88.原生JavaScript動態執行VBScript腳本

          89.原生JavaScript實現金額大寫轉換函數

          90.原生JavaScript常用的正則表達式大收集

          91.原生JavaScript實現窗體改變事件resize的操作(兼容所以的瀏覽器)

          92.原生JavaScript用正則清除空格分左右

          93.原生JavaScript判斷變量是否空值

          94.原生JavaScript實現base64解碼

          95.原生JavaScript實現utf8解碼

          96.原生JavaScript獲取窗體可見范圍的寬與高

          97.原生JavaScript判斷IE版本號(既簡潔.又向后兼容!)

          98.原生JavaScript獲取瀏覽器版本號

          99.原生JavaScript半角轉換為全角函數

          100.原生JavaScript全角轉換為半角函數

          代碼片段

          原生JavaScript實現字符串長度截取

          function cutstr(str, len) {
           var temp;
           var icount=0;
           var patrn=/[^\x00-\xff]/; // 匹配雙字節字符(包括漢字在內)
           var strren="";
           for (var i=0; i < str.length; i++) {
           if (icount < len - 1) {
           temp=str.substr(i, 1);
           if (patrn.exec(temp)==null) {
           icount=icount + 1;
           } else {
           icount=icount + 2;
           }
           } else {
           break;
           }
           }
           return strre + "...";
          }
          
          1. 原生JavaScript獲取域名主機
          function getHost(url) {
           var host="null";
           if (typeof url==undefined || url===null) {
           url=window.location.href;
           }
           var regex=/^\w+\:\/\/([^\/]*).*/;
           var match=url.match(regex);
           if (typeof match !=undefined && match !=null) {
           host=match[1];
           }
           return host;
          }
          
          1. 原生JavaScript清除空格
          String.prototype.trim=function() {
           var reExtraSpace=/^\s*(.*?)\s+$/;
           return this.replace(reExtraSpace, "$1");
          }
          
          1. 原生JavaScript替換全部
          String.prototype.replaceAll=function(s1, s2) {
           return this.replace(new RegExp(s1, "gm"), s2);
          }
          
          1. 原生JavaScript轉義html標簽
          function HtmlEncode(text) {
           return text.replace(/&/g, '&amp')
           .replace(/\"/g, '&quot')
           .replace(/</g, '&lt')
           .replace(/>/g, '&gt');
          }
          
          1. 原生JavaScript還原html標簽
          function HtmlDecode(text) {
           return text.replace('&amp', /&/g)
           .replace('&quot', /\"/g)
           .replace('&lt', /</g)
           .replace('&gt', />/g);
          }
          
          1. 原生JavaScript判斷是否為數字類型
          function isDigit(value) {
           var patrn=/^[0-9]*$/;
           if (patrn.exec(value)==null || value=="") {
           return false
           } else {
           return true
           }
          }
          
          1. 原生JavaScript時間日期格式轉換
          Date.prototype.Format=function(formatStr) {
           var str=formatStr;
           var Week=['日', '一', '二', '三', '四', '五', '六'];
           str=str.replace(/yyyy|YYYY/, this.getFullYear());
           str=str.replace(/yy|YY/, (this.getYear() % 100) > 9 ? (this.getYear() % 100).toString() : '0' + (this.getYear() % 100));
           str=str.replace(/MM/, (this.getMonth() + 1) > 9 ? (this.getMonth() + 1).toString() : '0' + (this.getMonth() + 1));
           str=str.replace(/M/g, (this.getMonth() + 1));
           str=str.replace(/w|W/g, Week[this.getDay()]);
           str=str.replace(/dd|DD/, this.getDate() > 9 ? this.getDate().toString() : '0' + this.getDate());
           str=str.replace(/d|D/g, this.getDate());
           str=str.replace(/hh|HH/, this.getHours() > 9 ? this.getHours().toString() : '0' + this.getHours());
           str=str.replace(/h|H/g, this.getHours());
           str=str.replace(/mm/, this.getMinutes() > 9 ? this.getMinutes().toString() : '0' + this.getMinutes());
           str=str.replace(/m/g, this.getMinutes());
           str=str.replace(/ss|SS/, this.getSeconds() > 9 ? this.getSeconds().toString() : '0' + this.getSeconds());
           str=str.replace(/s|S/g, this.getSeconds());
           return str
           }
          
          1. 原生JavaScript設置cookie值
          function setCookie(name, value, Hours) {
           var d=new Date();
           var offset=8;
           var utc=d.getTime() + (d.getTimezoneOffset() * 60000);
           var nd=utc + (3600000 * offset);
           var exp=new Date(nd);
           exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);
           document.cookie=name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString() + ";domain=360doc.com;"
          }
          
          1. 原生JavaScript獲取cookie值
          function getCookie(name) {
           var arr=document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
           if (arr !=null) return unescape(arr[2]);
           return null
          }
          
          1. 原生JavaScript加入收藏夾
          function AddFavorite(sURL, sTitle) {
           try {
           window.external.addFavorite(sURL, sTitle)
           } catch(e) {
           try {
           window.sidebar.addPanel(sTitle, sURL, "")
           } catch(e) {
           alert("加入收藏失敗,請使用Ctrl+D進行添加")
           }
           }
          }
          
          1. 原生JavaScript設為首頁
          function setHomepage() {
           if (document.all) {
           document.body.style.behavior='url(#default#homepage)';
           document.body.setHomePage('http://***');
           } else if (window.sidebar) {
           if (window.netscape) {
           try {
           netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
           } catch(e) {
           alert("該操作被瀏覽器拒絕,如果想啟用該功能,請在地址欄內輸入 about:config,然后將項 signed.applets.codebase_principal_support 值該為true")
           }
           }
           var prefs=Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
           prefs.setCharPref('browser.startup.homepage', 'http://***')
           }
          }
          
          1. 原生JavaScript判斷IE6
          var ua=navigator.userAgent.toLowerCase();
          var isIE6=ua.indexOf("msie 6") > -1;
          if (isIE6) {
           try {
           document.execCommand("BackgroundImageCache", false, true)
           } catch(e) {}
          }
          
          1. 原生JavaScript加載樣式文件
          function LoadStyle(url) {
           try {
           document.createStyleSheet(url)
           } catch(e) {
           var cssLink=document.createElement('link');
           cssLink.rel='stylesheet';
           cssLink.type='text/css';
           cssLink.href=url;
           var head=document.getElementsByTagName('head')[0];
           head.appendChild(cssLink)
           }
          }
          
          1. 原生JavaScript返回腳本內容
          function evalscript(s) {
           if(s.indexOf('<script')==-1) return s;
           var p=/<script[^\>]*?>([^\x00]*?)<\/script>/ig;
           var arr=[];
           while(arr=p.exec(s)) {
           var p1=/<script[^\>]*?src=\"([^\>]*?)\"[^\>]*?(reload=\"1\")?(?:charset=\"([\w\-]+?)\")?><\/script>/i;
           var arr1=[];
           arr1=p1.exec(arr[0]);
           if(arr1) {
           appendscript(arr1[1], '', arr1[2], arr1[3]);
           } else {
           p1=/<script(.*?)>([^\x00]+?)<\/script>/i;
           arr1=p1.exec(arr[0]);
           appendscript('', arr1[2], arr1[1].indexOf('reload=') !=-1);
           }
           }
           return s;
          }
          
          1. 原生JavaScript清除腳本內容
          function stripscript(s) {
           return s.replace(/<script.*?>.*?<\/script>/ig, '');
          }
          
          1. 原生JavaScript動態加載腳本文件
          function appendscript(src, text, reload, charset) {
           var id=hash(src + text);
           if(!reload && in_array(id, evalscripts)) return;
           if(reload && $(id)) {
           $(id).parentNode.removeChild($(id));
           }
           
           evalscripts.push(id);
           var scriptNode=document.createElement("script");
           scriptNode.type="text/javascript";
           scriptNode.id=id;
           scriptNode.charset=charset ? charset : (BROWSER.firefox ? document.characterSet : document.charset);
           try {
           if(src) {
           scriptNode.src=src;
           scriptNode.onloadDone=false;
           scriptNode.onload=function () {
           scriptNode.onloadDone=true;
           JSLOADED[src]=1;
           };
           scriptNode.onreadystatechange=function () {
           if((scriptNode.readyState=='loaded' || scriptNode.readyState=='complete') && !scriptNode.onloadDone) {
           scriptNode.onloadDone=true;
           JSLOADED[src]=1;
           }
           };
           } else if(text){
           scriptNode.text=text;
           }
           document.getElementsByTagName('head')[0].appendChild(scriptNode);
           } catch(e) {}
          }
          
          1. 原生JavaScript返回按ID檢索的元素對象
          function $(id) {
           return !id ? null : document.getElementById(id);
          }
          
          1. 原生JavaScript返回瀏覽器版本內容
          function browserVersion(types) {
           var other=1;
           for(i in types) {
           var v=types[i] ? types[i] : i;
           if(USERAGENT.indexOf(v) !=-1) {
           var re=new RegExp(v + '(\\/|\\s)([\\d\\.]+)', 'ig');
           var matches=re.exec(USERAGENT);
           var ver=matches !=null ? matches[2] : 0;
           other=ver !==0 && v !='mozilla' ? 0 : other;
           }else {
           var ver=0;
           }
           eval('BROWSER.' + i + '=ver');
           }
           BROWSER.other=other;
          }
          
          1. 原生JavaScript元素顯示的通用方法
          function $(id) {
           return !id ? null : document.getElementById(id);
          }
          function display(id) {
           var obj=$(id);
           if(obj.style.visibility) {
           obj.style.visibility=obj.style.visibility=='visible' ? 'hidden' : 'visible';
           } else {
           obj.style.display=obj.style.display=='' ? 'none' : '';
           }
          }
          
          1. 原生JavaScript中有insertBefore方法,可惜卻沒有insertAfter方法?用如下函數實現
          function insertAfter(newChild, refChild) {
           var parElem=refChild.parentNode; 
           if(parElem.lastChild==refChild){ 
           refChild.appendChild(newChild); 
           }else{ 
           parElem.insertBefore(newChild, refChild.nextSibling); 
           } 
          }
          
          1. 原生JavaScript中兼容瀏覽器綁定元素事件
          function addEventSamp(obj, evt, fn){ 
           if (obj.addEventListener) { 
           obj.addEventListener(evt, fn, false); 
           }else if(obj.attachEvent){ 
           obj.attachEvent('on' + evt, fn); 
           } 
          }
          
          1. 原生JavaScript光標停在文字的后面,文本框獲得焦點時調用
          function focusLast(){ 
           var e=event.srcElement; 
           var r=e.createTextRange(); 
           r.moveStart('character',e.value.length); 
           r.collapse(true); 
           r.select(); 
          }
          
          1. 原生JavaScript檢驗URL鏈接是否有效
          function getUrlState(URL) { 
           var xmlhttp=new ActiveXObject("microsoft.xmlhttp"); 
           xmlhttp.Open("GET", URL, false); 
           try { 
           xmlhttp.Send(); 
           } catch(e) {
           
           } finally { 
           var result=xmlhttp.responseText; 
           if(result) { 
           if(xmlhttp.Status==200){ 
           return true; 
           }else{ 
           return false; 
           } 
           } else { 
           return false; 
           } 
           } 
          }
          
          1. 原生JavaScript格式化CSS樣式代碼
          function formatCss(s){ //格式化代碼
           s=s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
           s=s.replace(/;\s*;/g, ";"); //清除連續分號
           s=s.replace(/\,[\s\.\#\d]*{/g, "{");
           s=s.replace(/([^\s])\{([^\s])/g, "$1 {\n\t$2");
           s=s.replace(/([^\s])\}([^\n]*)/g, "$1\n}\n$2");
           s=s.replace(/([^\s]);([^\s\}])/g, "$1;\n\t$2");
           return s;
          }
          
          1. 原生JavaScript壓縮CSS樣式代碼
          function yasuoCss (s) { //壓縮代碼
           s=s.replace(/\/\*(.|\n)*?\*\//g, ""); //刪除注釋
           s=s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
           s=s.replace(/\,[\s\.\#\d]*\{/g, "{"); //容錯處理
           s=s.replace(/;\s*;/g, ";"); //清除連續分號
           s=s.match(/^\s*(\S+(\s+\S+)*)\s*$/); //去掉首尾空白
           return (s==null) ? "" : s[1];
          }
          
          1. 原生JavaScript獲取當前路徑
          var currentPageUrl="";
          if (typeof this.href===undefined) {
           currentPageUrl=document.location.toString().toLowerCase();
          }
          else {
           currentPageUrl=this.href.toString().toLowerCase();
          }
          
          1. 原生JavaScript將IP地址轉成整型
          function _ip2int(ip){
           var num=0;
           ip=ip.split(".");
           num=Number(ip[0]) * 256 * 256 * 256 + Number(ip[1]) * 256 * 256 + Number(ip[2]) * 256 + Number(ip[3]);
           num=num >>> 0;
           return num;
          }
          
          1. 原生JavaScript整型解析為IP地址
          function _int2iP(num){
           var str;
           var tt=new Array();
           tt[0]=(num >>> 24) >>> 0;
           tt[1]=((num << 8) >>> 24) >>> 0;
           tt[2]=(num << 16) >>> 24;
           tt[3]=(num << 24) >>> 24;
           str=String(tt[0]) + "." + String(tt[1]) + "." + String(tt[2]) + "." + String(tt[3]);
           return str;
          }
          
          1. 原生JavaScript實現checkbox全選與全不選
          function checkAll() {
           var selectall=document.getElementById("selectall");
           var allbox=document.getElementsByName("allbox");
           if (selectall.checked) {
           for (var i=0; i < allbox.length; i++) {
           allbox[i].checked=true;
           }
           } else {
           for (var i=0; i < allbox.length; i++) {
           allbox[i].checked=false;
           }
           }
          }
          
          1. 原生JavaScript判斷是否移動設備
          function isMobile(){
           if (typeof this._isMobile==='boolean'){
           return this._isMobile;
           }
           var screenWidth=this.getScreenWidth();
           var fixViewPortsExperiment=rendererModel.runningExperiments.FixViewport || rendererModel.runningExperiments.fixviewport;
           var fixViewPortsExperimentRunning=fixViewPortsExperiment && (fixViewPortsExperiment.toLowerCase()==="new");
           if(!fixViewPortsExperiment){
           if(!this.isAppleMobileDevice()){
           screenWidth=screenWidth/window.devicePixelRatio;
           }
           }
           var isMobileScreenSize=screenWidth < 600;
           var isMobileUserAgent=false;
           this._isMobile=isMobileScreenSize && this.isTouchScreen();
           return this._isMobile;
          }
          
          1. 原生JavaScript判斷是否移動設備訪問
          function isMobileUserAgent() {
           return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));
          }
          
          1. 原生JavaScript判斷是否蘋果移動設備訪問
          function isAppleMobileDevice() {
           return (/iphone|ipod|ipad|Macintosh/i.test(navigator.userAgent.toLowerCase()));
          }
          
          1. 原生JavaScript判斷是否安卓移動設備訪問
          function isAndroidMobileDevice(){
           return (/android/i.test(navigator.userAgent.toLowerCase()));
          }
          
          1. 原生JavaScript判斷是否Touch屏幕
          function isTouchScreen() {
           return (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
          }
          
          1. 原生JavaScript判斷是否在安卓上的谷歌瀏覽器
          function isNewChromeOnAndroid(){
           if(this.isAndroidMobileDevice()){
           var userAgent=navigator.userAgent.toLowerCase();
           if((/chrome/i.test(userAgent))){
           var parts=userAgent.split('chrome/');
           var fullVersionString=parts[1].split(" ")[0];
           var versionString=fullVersionString.split('.')[0];
           var version=parseInt(versionString);
           if(version >=27){
           return true;
           }
           }
           }
           return false;
          }
          
          1. 原生JavaScript判斷是否打開視窗
          function isViewportOpen() {
           return !!document.getElementById('wixMobileViewport');
          }
          
          1. 原生JavaScript獲取移動設備初始化大小
          function getInitZoom() {
           if(!this._initZoom) {
           var screenWidth=Math.min(screen.height, screen.width);
           if(this.isAndroidMobileDevice() && !this.isNewChromeOnAndroid()) {
           screenWidth=screenWidth / window.devicePixelRatio;
           }
           this._initZoom=screenWidth /document.body.offsetWidth;
           }
           return this._initZoom;
          }
          
          1. 原生JavaScript獲取移動設備最大化大小
          function getZoom(){
           var screenWidth=(Math.abs(window.orientation)===90) ? Math.max(screen.height, screen.width) : Math.min(screen.height, screen.width);
           if(this.isAndroidMobileDevice() && !this.isNewChromeOnAndroid()){
           screenWidth=screenWidth/window.devicePixelRatio;
           }
           var FixViewPortsExperiment=rendererModel.runningExperiments.FixViewport || rendererModel.runningExperiments.fixviewport;
           var FixViewPortsExperimentRunning=FixViewPortsExperiment && (FixViewPortsExperiment==="New" || FixViewPortsExperiment==="new");
           if(FixViewPortsExperimentRunning){
           return screenWidth / window.innerWidth;
           }else{
           return screenWidth / document.body.offsetWidth;
           }
          }
          
          1. 原生JavaScript獲取移動設備屏幕寬度
          function getScreenWidth(){
           var smallerSide=Math.min(screen.width, screen.height);
           var fixViewPortsExperiment=rendererModel.runningExperiments.FixViewport || rendererModel.runningExperiments.fixviewport;
           var fixViewPortsExperimentRunning=fixViewPortsExperiment && (fixViewPortsExperiment.toLowerCase()==="new");
           if(fixViewPortsExperiment){
           if(this.isAndroidMobileDevice() && !this.isNewChromeOnAndroid()){
           smallerSide=smallerSide/window.devicePixelRatio;
           }
           }
           return smallerSide;
          }
          
          1. 原生JavaScript完美判斷是否為網址
          function IsURL(strUrl) {
           var regular=/^\b(((https?|ftp):\/\/)?[-a-z0-9]+(\.[-a-z0-9]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d))\b(\/[-a-z0-9_:\@&?=+,.!\/~%\$]*)?)$/i
           if (regular.test(strUrl)) {
           return true;
           }
           else {
           return false;
           }
          }
          
          1. 原生JavaScript根據樣式名稱檢索元素對象
          function getElementsByClassName(name) {
           var tags=document.getElementsByTagName('*') || document.all;
           var els=[];
           for (var i=0; i < tags.length; i++) {
           if (tags[i].className) {
           var cs=tags[i].className.split(' ');
           for (var j=0; j < cs.length; j++) {
           if (name==cs[j]) {
           els.push(tags[i]);
           break;
           }
           }
           }
           }
           return els;
          }
          
          1. 原生JavaScript判斷是否以某個字符串開頭
          String.prototype.startWith=function (s) {
           return this.indexOf(s)==0;
          }
          
          1. 原生JavaScript判斷是否以某個字符串結束
          String.prototype.endWith=function (s) {
           var d=this.length - s.length;
           return (d >=0 && this.lastIndexOf(s)==d);
          }
          
          1. 原生JavaScript返回IE瀏覽器的版本號
          function getIE(){
           if (window.ActiveXObject){
           var v=navigator.userAgent.match(/MSIE ([^;]+)/)[1];
           return parseFloat(v.substring(0, v.indexOf(".")));
           }
           return false;
          }
          
          1. 原生JavaScript獲取頁面高度
          function getPageHeight() {
           var g=document, a=g.body, f=g.documentElement, d=g.compatMode=="BackCompat"
           ? a
           : g.documentElement;
           return Math.max(f.scrollHeight, a.scrollHeight, d.clientHeight);
          }
          
          1. 原生JavaScript獲取頁面scrollLeft
          function getPageScrollLeft(){
           var a=document;
           return a.documentElement.scrollLeft || a.body.scrollLeft;
          }
          
          1. 原生JavaScript獲取頁面可視寬度
          function getPageViewWidth(){
           var d=document, a=d.compatMode=="BackCompat"
           ? d.body
           : d.documentElement;
           return a.clientWidth; // 可視寬度為clientWidth
          }
          
          1. 原生JavaScript獲取頁面寬度
          // 考慮帶滾動條的全部寬度
          function getPageWidth(){
           var g=document, a=g.body, f=g.documentElement, d=g.compatMode=="BackCompat"
           ? a
           : g.documentElement;
           return Math.max(f.scrollWidth, a.scrollWidth, d.clientWidth);
          }
          
          1. 原生JavaScript獲取頁面scrollTop
          function getPageScrollTop(){
           var a=document;
           return a.documentElement.scrollTop || a.body.scrollTop;
          }
          
          1. 原生JavaScript獲取頁面可視高度
          function getPageViewHeight() {
           var d=document, a=d.compatMode=="BackCompat"
           ? d.body
           : d.documentElement;
           return a.clientHeight;
          }
          
          1. 原生JavaScript跨瀏覽器添加事件
          function addEvt(oTarget, sEvtType, fnHandle) {
           if(!oTarget) {return;}
           if(oTarget.addEventListener) {
           oTarget.addEventListener(sEvtType, fnHandle, false);
           } else if(oTarget.attachEvent) {
           oTarget.attachEvent("on" + sEvtType, fnHandle);
           } else {
           oTarget["on" + sEvtType]=fnHandle;
           }
          }
          
          1. 原生JavaScript跨瀏覽器刪除事件
          function delEvt(oTarget, sEvtType, fnHandle){
           if(!oTarget) {return;}
           if(oTarget.addEventListener) {
           oTarget.addEventListener(sEvtType,fnHandle,false);
           } else if(oTarget.attachEvent) {
           oTarget.attachEvent("on" + sEvtType,fnHandle);
           } else {
           oTarget["on" + sEvtType]=fnHandle;
           }
          }
          
          1. 原生JavaScript去掉url前綴
          function removeUrlPrefix(a) {
           a=a.replace(/:/g,":").replace(/./g,".").replace(///g,"/");
           while(trim(a).toLowerCase().indexOf("http://")==0) {
           a=trim(a.replace(/http:\/\//i,""));
           }
           return a;
          }
          
          1. 原生JavaScript隨機數時間戳
          function uniqueId() {
           var a=Math.random, b=parseInt;
           return Number(new Date()).toString()+b(10*a())+b(10*a())+b(10*a());
          }
          
          1. 原生JavaScript全角半角轉換,iCase: 0全到半,1半到全,其他不轉化
          function chgCase(sStr,iCase){
           if(typeof sStr !="string" || sStr.length <=0 || !(iCase===0 || iCase==1)){
           return sStr;
           }
           var i,oRs=[],iCode;
           if(iCase){/*半->全*/
           for(i=0; i<sStr.length;i+=1){ 
           iCode=sStr.charCodeAt(i);
           if(iCode==32){
           iCode=12288; 
           }else if(iCode < 127){
           iCode +=65248;
           }
           oRs.push(String.fromCharCode(iCode)); 
           } 
           }else{/*全->半*/
           for(i=0; i<sStr.length;i+=1){ 
           iCode=sStr.charCodeAt(i);
           if(iCode==12288){
           iCode=32;
           }else if(iCode > 65280 && iCode < 65375){
           iCode -=65248; 
           }
           oRs.push(String.fromCharCode(iCode)); 
           } 
           } 
           return oRs.join(""); 
          }
          
          1. 原生JavaScript確認是否鍵盤有效輸入值
          function checkKey(iKey){
           if(iKey==32 || iKey==229){return true;} /*空格和異常*/
           if(iKey>47 && iKey < 58){return true;} /*數字*/
           if(iKey>64 && iKey < 91){return true;} /*字母*/
           if(iKey>95 && iKey < 108){return true;} /*數字鍵盤1*/
           if(iKey>108 && iKey < 112){return true;} /*數字鍵盤2*/
           if(iKey>185 && iKey < 193){return true;} /*符號1*/
           if(iKey>218 && iKey < 223){return true;} /*符號2*/
           return false;
          }
          
          1. 原生JavaScript獲取網頁被卷去的位置
          function getScrollXY() {
           return document.body.scrollTop ? {
           x: document.body.scrollLeft,
           y: document.body.scrollTop
           }: {
           x: document.documentElement.scrollLeft,
           y: document.documentElement.scrollTop
           }
          }
          
          1. 原生JavaScript另一種正則日期格式化函數+調用方法
          Date.prototype.format=function(format) { // author: meizz
           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;
          }
          alert(new Date().format("yyyy-MM-dd hh:mm:ss"));
          
          1. 原生JavaScript時間個性化輸出功能
          /*
          1、< 60s, 顯示為“剛剛”
          2、>=1min && < 60 min, 顯示與當前時間差“XX分鐘前”
          3、>=60min && < 1day, 顯示與當前時間差“今天 XX:XX”
          4、>=1day && < 1year, 顯示日期“XX月XX日 XX:XX”
          5、>=1year, 顯示具體日期“XXXX年XX月XX日 XX:XX”
           */
          function timeFormat(time){
           var date=new Date(time)
           , curDate=new Date()
           , year=date.getFullYear()
           , month=date.getMonth() + 1
           , day=date.getDate()
           , hour=date.getHours()
           , minute=date.getMinutes()
           , curYear=curDate.getFullYear()
           , curHour=curDate.getHours()
           , timeStr;
           if(year < curYear){
           timeStr=year +'年'+ month +'月'+ day +'日 '+ hour +':'+ minute;
           }else{
           var pastTime=curDate - date
           , pastH=pastTime/3600000;
           if(pastH > curHour){
           timeStr=month +'月'+ day +'日 '+ hour +':'+ minute;
           }else if(pastH >=1){
           timeStr='今天 ' + hour +':'+ minute +'分';
           }else{
           var pastM=curDate.getMinutes() - minute;
           if(pastM > 1){
           timeStr=pastM +'分鐘前';
           }else{
           timeStr='剛剛';
           }
           }
           }
           return timeStr;
          }
          
          1. 原生JavaScript解決offsetX兼容性問題
          // 針對火狐不支持offsetX/Y
          function getOffset(e) {
           var target=e.target, // 當前觸發的目標對象
           eventCoord,
           pageCoord,
           offsetCoord;
           // 計算當前觸發元素到文檔的距離
           pageCoord=getPageCoord(target);
           // 計算光標到文檔的距離
           eventCoord={
           X : window.pageXOffset + e.clientX,
           Y : window.pageYOffset + e.clientY
           };
           // 相減獲取光標到第一個定位的父元素的坐標
           offsetCoord={
           X : eventCoord.X - pageCoord.X,
           Y : eventCoord.Y - pageCoord.Y
           };
           return offsetCoord;
          }
          function getPageCoord(element) {
           var coord={ X : 0, Y : 0 };
           // 計算從當前觸發元素到根節點為止,
           // 各級 offsetParent 元素的 offsetLeft 或 offsetTop 值之和
           while (element){
           coord.X +=element.offsetLeft;
           coord.Y +=element.offsetTop;
           element=element.offsetParent;
           }
           return coord;
          }
          
          1. 原生JavaScript常用的正則表達式
          //正整數
          /^[0-9]*[1-9][0-9]*$/;
          //負整數
          /^-[0-9]*[1-9][0-9]*$/;
          //正浮點數
          /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/; 
          //負浮點數
          /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; 
          //浮點數
          /^(-?\d+)(\.\d+)?$/;
          //email地址
          /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
          //url地址
          /^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$/;
          //年/月/日(年-月-日、年.月.日)
          /^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/;
          //匹配中文字符
          /[\u4e00-\u9fa5]/;
          //匹配帳號是否合法(字母開頭,允許5-10字節,允許字母數字下劃線)
          /^[a-zA-Z][a-zA-Z0-9_]{4,9}$/;
          //匹配空白行的正則表達式
          /\n\s*\r/;
          //匹配中國郵政編碼
          /[1-9]\d{5}(?!\d)/;
          //匹配身份證
          /\d{15}|\d{18}/;
          //匹配國內電話號碼
          /(\d{3}-|\d{4}-)?(\d{8}|\d{7})?/;
          //匹配IP地址
          /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/;
          //匹配首尾空白字符的正則表達式
          /^\s*|\s*$/;
          //匹配HTML標記的正則表達式
          < (\S*?)[^>]*>.*?|< .*? />;
          
          1. 原生JavaScript實現返回頂部的通用方法
          function backTop(btnId) {
           var btn=document.getElementById(btnId);
           var d=document.documentElement;
           var b=document.body;
           window.onscroll=set;
           btn.style.display="none";
           btn.onclick=function() {
           btn.style.display="none";
           window.onscroll=null;
           this.timer=setInterval(function() {
           d.scrollTop -=Math.ceil((d.scrollTop + b.scrollTop) * 0.1);
           b.scrollTop -=Math.ceil((d.scrollTop + b.scrollTop) * 0.1);
           if ((d.scrollTop + b.scrollTop)==0) clearInterval(btn.timer, window.onscroll=set);
           },
           10);
           };
           function set() {
           btn.style.display=(d.scrollTop + b.scrollTop > 100) ? 'block': "none";
           }
          };
          backTop('goTop');
          
          1. 原生JavaScript獲得URL中的GET參數值
          // 用法:如果地址是 test.htm?t1=1&t2=2&t3=3, 那么能取得:GET["t1"], GET["t2"], GET["t3"]
          function get_get() { 
           querystr=window.location.href.split("?");
           if(querystr[1]) {
           var GETs=querystr[1].split("&"),
           GET=new Array();
           for(i=0; i < GETs.length; i++){
           tmp_arr=GETs[i].split("=");
           key=tmp_arr[0];
           GET[key]=tmp_arr[1];
           }
           }
           return querystr[1];
          }
          
          1. 原生JavaScript實現全選通用方法
          function checkall(form, prefix, checkall) {
           var checkall=checkall ? checkall : 'chkall';
           for(var i=0; i < form.elements.length; i++) {
           var e=form.elements[i];
           if(e.type=="checkbox"){
           e.checked=form.elements[checkall].checked;
           }
           }
          }
          
          1. 原生JavaScript實現全部取消選擇通用方法
          function uncheckAll(form) {
           for (var i=0; i < form.elements.length; i++){
           var e=form.elements[i];
           if (e.name !='chkall')
           e.checked=!e.checked;
           }
          }
          
          1. 原生JavaScript實現打開一個窗體通用方法
          function openWindow(url,windowName,width,height){
           var x=parseInt(screen.width / 2.0) - (width / 2.0); 
           var y=parseInt(screen.height / 2.0) - (height / 2.0);
           var isMSIE=(navigator.appName=="Microsoft Internet Explorer");
           if (isMSIE) {
           var p="resizable=1,location=no,scrollbars=no,width=";
           p=p+width;
           p=p+",height=";
           p=p+height;
           p=p+",left=";
           p=p+x;
           p=p+",top=";
           p=p+y;
           retval=window.open(url, windowName, p);
           } else {
           var win=window.open(url, "ZyiisPopup", "top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=yes,modal=yes,width=" + width + ",height=" + height + ",resizable=no" );
           eval("try { win.resizeTo(width, height); } catch(e) { }");
           win.focus();
           }
          }
          
          1. 原生JavaScript判斷是否為客戶端設備
          function client(o){ 
           var b=navigator.userAgent.toLowerCase(); 
           var t=false;
           if (o=='isOP'){
           t=b.indexOf('opera') > -1;
           }
           if (o=='isIE'){
           t=b.indexOf('msie') > -1;
           }
           if (o=='isFF'){
           t=b.indexOf('firefox') > -1;
           }
           return t;
          }
          
          1. 原生JavaScript獲取單選按鈕的值
          function get_radio_value(field){
           if(field && field.length){ 
           for(var i=0; i < field.length; i++){ 
           if(field[i].checked){ 
           return field[i].value; 
           } 
           } 
           }else { 
           return; 
           } 
          }
          
          1. 原生JavaScript獲取復選框的值
          function get_checkbox_value(field) { 
           if(field && field.length){ 
           for(var i=0; i < field.length; i++){ 
           if(field[i].checked && !field[i].disabled){
           return field[i].value;
           }
           } 
           } else {
           return;
           } 
          }
          
          1. 原生JavaScript判斷是否為郵箱
          function isEmail(str){
           var re=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; 
           if (re.test(str) !=true) {
           return false;
           }else{
           return true;
           } 
          }
          
          1. 原生JavaScript判斷是否有列表中的危險字符
          function isValidReg(chars){
           var re=/<|>|\[|\]|\{|\}|『|』|※||||§|||||||□||㊣|﹋|⊕|⊙|〒|ㄅ|ㄆ|ㄇ|ㄈ|ㄉ|ㄊ|ㄋ|ㄌ|ㄍ|ㄎ|ㄏ|ㄐ|ㄑ|ㄒ|ㄓ|ㄔ|ㄕ|ㄖ|ㄗ|ㄘ|ㄙ|ㄚ|ㄛ|ㄜ|ㄝ|ㄞ|ㄟ|ㄢ|ㄣ|ㄤ|ㄥ|ㄦ|ㄧ|ㄨ|ㄩ|■|▄|▆|\*|@|#|\^|\\/;
           if (re.test( chars)==true) {
           return false;
           }else{
           return true;
           } 
          }
          
          1. 原生JavaScript判斷字符串是否大于規定的長度
          function isValidLength(chars, len) {
           if (chars.length < len) {
           return false;
           }
           return true;
          }
          
          1. 原生JavaScript判斷字符串是為網址不區分大小寫
          function isValidURL( chars ) {
           var re=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(\S+\.\S+)$/;
           if (!isNULL(chars)) {
           chars=jsTrim(chars);
           if (chars.match(re)==null)
           return false;
           else
           return true;
           }
           return false;
          }
          
          1. 原生JavaScript判斷字符串是否為小數
          function isValidDecimal( chars ) {
           var re=/^\d*\.?\d{1,2}$/;
           if (chars.match(re)==null)
           return false;
           else
           return true;
          }
          
          1. 原生JavaScript判斷字符串是否為整數
          function isNumber(chars) {
           var re=/^\d*$/;
           if (chars.match(re)==null)
           return false;
           else
           return true;
          }
          
          1. 原生JavaScript判斷字符串是否為浮點數
          function isFloat(str) {
           for(i=0;i<str.length;i++) {
           if((str.charAt(i)<"0" || str.charAt(i)>"9")&& str.charAt(i) !='.') {
           return false;
           }
           }
           return true;
          }
          
          1. 原生JavaScript判斷字符是否為A-Za-z英文字母
          function isLetters(str) {
           var re=/^[A-Za-z]+$/;
           if (str.match(re)==null)
           return false;
           else
           return true;
          }
          
          1. 原生JavaScript判斷字符串是否郵政編碼
          function isValidPost( chars ) {
           var re=/^\d{6}$/;
           if (chars.match(re)==null)
           return false;
           else
           return true;
          }
          
          1. 原生JavaScript判斷字符是否空NULL
          function isNULL( chars ) {
           if (chars==null)
           return true;
           if (jsTrim(chars).length==0)
           return true;
           return false;
          }
          
          1. 原生JavaScript用正則表達式提取頁面代碼中所有網址
          var aa=document.documentElement.outerHTML.match(/(url\(|src=|href=)[\"\']*([^\"\'\(\)\<\>\[\] ]+)[\"\'\)]*|(http:\/\/[\w\-\.]+[^\"\'\(\)\<\>\[\] ]+)/ig).join("\r\n").replace(/^(src=|href=|url\()[\"\']*|[\"\'\>\) ]*$/igm,"");
          alert(aa);
          
          1. 原生JavaScript用正則表達式清除相同的數組(低效率)
          Array.prototype.unique=function() {
           return this.reverse().join(",").match(/([^,]+)(?!.*\1)/ig).reverse();
          }
          
          1. 原生JavaScript用正則表達式清除相同的數組(高效率)
          String.prototype.unique=function() {
           var x=this.split(/[\r\n]+/);
           var y='';
           for(var i=0; i < x.length; i++){
           if(!new RegExp("^"+x[i].replace(/([^\w])/ig,"\\$1")+"$","igm").test(y)) {
           y +=x[i]+"\r\n";
           }
           }
           return y;
          }
          
          1. 原生JavaScript用正則表達式按字母排序,對每行進行數組排序
          function SetSort(){
           var text=K1.value.split(/[\r\n]/).sort().join("\r\n"); // 順序
           var test=K1.value.split(/[\r\n]/).sort().reverse().join("\r\n"); // 反序
           K1.value=(K1.value !=text) ? text : test;
          }
          
          1. 原生JavaScript字符串反序
          function IsReverse(text) {
           return text.split('').reverse().join('');
          }
          
          1. 原生JavaScript用正則表達式清除html代碼中的腳本
          function clear_script() {
           K1.valu e=K1.value.replace(/<script.*?>[\s\S]*?<\/script>|\s+on[a-zA-Z]{3,16}\s?=\s?"[\s\S]*?"|\s+on[a-zA-Z]{3,16}\s?=\s?'[\s\S]*?'|\s+on[a-zA-Z]{3,16}\s?=[^ >]+/ig,"");
          }
          
          1. 原生JavaScript動態執行JavaScript腳本
          function javascript(){
           try{
           eval(K1.value);
           }catch(e){
           alert(e.message);
           }
          }
          
          1. 原生JavaScript動態執行VBScript腳本
          function vbscript() {
           try{
           var script=document.getElementById("K1").value;
           if(script.trim()=="") return;
           window.execScript('On Error Resume Next \n'+script+'\n If Err.Number<>0 Then \n MsgBox "請輸入正確的VBScript腳本!",48,"腳本錯誤!" \n End If',"vbscript")
           } catch(e) {
           alert(e.message);
           }
          }
          
          1. 原生JavaScript實現金額大寫轉換函數
          function transform(tranvalue) {
           try {
           var i=1;
           var dw2=new Array("", "萬", "億"); //大單位
           var dw1=new Array("拾", "佰", "仟"); //小單位
           var dw=new Array("零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖"); //整數部分用
           //以下是小寫轉換成大寫顯示在合計大寫的文本框中 
           //分離整數與小數
           var source=splits(tranvalue);
           var num=source[0];
           var dig=source[1];
           //轉換整數部分
           var k1=0; //計小單位
           var k2=0; //計大單位
           var sum=0;
           var str="";
           var len=source[0].length; //整數的長度
           for (i=1; i <=len; i++) {
           var n=source[0].charAt(len - i); //取得某個位數上的數字
           var bn=0;
           if (len - i - 1 >=0) {
           bn=source[0].charAt(len - i - 1); //取得某個位數前一位上的數字
           }
           sum=sum + Number(n);
           if (sum !=0) {
           str=dw[Number(n)].concat(str); //取得該數字對應的大寫數字,并插入到str字符串的前面
           if (n=='0') sum=0;
           }
           if (len - i - 1 >=0) { //在數字范圍內
           if (k1 !=3) { //加小單位
           if (bn !=0) {
           str=dw1[k1].concat(str);
           }
           k1++;
           } else { //不加小單位,加大單位
           k1=0;
           var temp=str.charAt(0);
           if (temp=="萬" || temp=="億") //若大單位前沒有數字則舍去大單位
           str=str.substr(1, str.length - 1);
           str=dw2[k2].concat(str);
           sum=0;
           }
           }
           if (k1==3) //小單位到千則大單位進一
           {
           k2++;
           }
           }
           //轉換小數部分
           var strdig="";
           if (dig !="") {
           var n=dig.charAt(0);
           if (n !=0) {
           strdig +=dw[Number(n)] + "角"; //加數字
           }
           var n=dig.charAt(1);
           if (n !=0) {
           strdig +=dw[Number(n)] + "分"; //加數字
           }
           }
           str +="元" + strdig;
           } catch(e) {
           return "0元";
           }
           return str;
          }
          //拆分整數與小數
          function splits(tranvalue) {
           var value=new Array('', '');
           temp=tranvalue.split(".");
           for (var i=0; i < temp.length; i++) {
           value[i]=temp[i];
           }
           return value;
          }
          
          1. 原生JavaScript常用的正則表達式大收集
          匹配中文字符的正則表達式: [\u4e00-\u9fa5] 
          匹配雙字節字符(包括漢字在內):[^\x00-\xff] 
          匹配空行的正則表達式:\n[\s| ]*\r 
          匹配 HTML 標記的正則表達式:<(.*)>.*<\/\1>|<(.*) \/>
          匹配首尾空格的正則表達式:(^\s*)|(\s*$) 
          匹配 IP 地址的正則表達式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g
          匹配 Email 地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
          匹配網址 URL 的正則表達式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
          sql 語句:^(select|drop|delete|create|update|insert).*$ 
          非負整數:^\d+$ 
          正整數:^[0-9]*[1-9][0-9]*$ 
          非正整數:^((-\d+)|(0+))$ 
          負整數:^-[0-9]*[1-9][0-9]*$ 
          整數:^-?\d+$ 
          非負浮點數:^\d+(\.\d+)?$ 
          正浮點數:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ 
          非正浮點數:^((-\d+\.\d+)?)|(0+(\.0+)?))$ 
          英文字符串:^[A-Za-z]+$ 
          英文大寫串:^[A-Z]+$ 
          英文小寫串:^[a-z]+$ 
          英文字符數字串:^[A-Za-z0-9]+$ 
          英數字加下劃線串:^\w+$ 
          E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ 
          URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$ 
          郵政編碼:^[1-9]\d{5}$ 
          電話號碼:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$ 
          手機號碼:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$ 
          雙字節字符(包括漢字在內):^\x00-\xff 
          匹配首尾空格:(^\s*)|(\s*$)
          匹配 HTML 標記:<(.*)>.*<\/\1>|<(.*) \/> 
          匹配空行:\n[\s| ]*\r 
          提取信息中的網絡鏈接:(h|H)(r|R)(e|E)(f|F) *=*('|")?(\w|\\|\/|\.)+('|"| *|>)? 
          提取信息中的郵件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 
          提取信息中的圖片鏈接:(s|S)(r|R)(c|C) *=*('|")?(\w|\\|\/|\.)+('|"| *|>)? 
          提取信息中的 IP 地址:(\d+)\.(\d+)\.(\d+)\.(\d+) 
          提取信息中的中國手機號碼:(86)*0*13\d{9} 
          提取信息中的中國固定電話號碼:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8} 
          提取信息中的中國電話號碼(包括移動和固定電話):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14} 
          提取信息中的中國郵政編碼:[1-9]{1}(\d+){5} 
          提取信息中的浮點數(即小數):(-?\d*)\.?\d+ 
          提取信息中的任何數字 :(-?\d*)(\.\d+)? 
          IP:(\d+)\.(\d+)\.(\d+)\.(\d+) 
          電話區號:^0\d{2,3}$
          騰訊 QQ 號:^[1-9]*[1-9][0-9]*$ 
          帳號(字母開頭,允許 5-16 字節,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
          中文、英文、數字及下劃線:^[\u4e00-\u9fa5_a-zA-Z0-9]+$
          
          1. 原生JavaScript實現窗體改變事件resize的操作(兼容所有的瀏覽器)
          (function(){
           var fn=function(){
           var w=document.documentElement ? document.documentElement.clientWidth : document.body.clientWidth
           ,r=1255
           ,b=Element.extend(document.body)
           ,classname=b.className;
           if(w < r){
           // 當窗體的寬度小于1255的時候執行相應的操作
           }else{
           // 當窗體的寬度大于1255的時候執行相應的操作
           }
           }
           if(window.addEventListener){
           window.addEventListener('resize', function(){ fn(); });
           }else if(window.attachEvent){
           window.attachEvent('onresize', function(){ fn(); });
           }
           fn();
          })();
          
          1. 原生JavaScript用正則清除空格分左右
          function ltrim(s){ return s.replace( /^(\s*| *)/, ""); } 
          function rtrim(s){ return s.replace( /(\s*| *)$/, ""); } 
          function trim(s){ return ltrim(rtrim(s)); } 
          
          1. 原生JavaScript判斷變量是否空值
          /**
           * 判斷變量是否空值
           * undefined, null, '', false, 0, [], {} 均返回true,否則返回false
           */
          function empty(v){
           switch (typeof v){
           case 'undefined' : return true;
           case 'string' : if(trim(v).length==0) return true; break;
           case 'boolean' : if(!v) return true; break;
           case 'number' : if(0===v) return true; break;
           case 'object' : 
           if(null===v) return true;
           if(undefined !==v.length && v.length==0) return true;
           for(var k in v){return false;} return true;
           break;
           }
           return false;
          }
          
          1. 原生JavaScript實現base64解碼
          function base64_decode(data){
           var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
           var o1, o2, o3, h1, h2, h3, h4, bits, i=0,ac=0,dec="",tmp_arr=[];
           if (!data) { return data; }
           data +='';
           do { 
           h1=b64.indexOf(data.charAt(i++));
           h2=b64.indexOf(data.charAt(i++));
           h3=b64.indexOf(data.charAt(i++));
           h4=b64.indexOf(data.charAt(i++));
           bits=h1 << 18 | h2 << 12 | h3 << 6 | h4;
           o1=bits >> 16 & 0xff;
           o2=bits >> 8 & 0xff;
           o3=bits & 0xff;
           if (h3==64) {
           tmp_arr[ac++]=String.fromCharCode(o1);
           } else if (h4==64) {
           tmp_arr[ac++]=String.fromCharCode(o1, o2);
           } else {
           tmp_arr[ac++]=String.fromCharCode(o1, o2, o3);
           }
           } while (i < data.length);
           dec=tmp_arr.join('');
           dec=utf8_decode(dec);
           return dec;
          }
          

          95, 原生JavaScript實現utf8解碼

          function utf8_decode(str_data){
           var tmp_arr=[],i=0,ac=0,c1=0,c2=0,c3=0;str_data +='';
           while (i < str_data.length) {
           c1=str_data.charCodeAt(i);
           if (c1 < 128) {
           tmp_arr[ac++]=String.fromCharCode(c1);
           i++;
           } else if (c1 > 191 && c1 < 224) { 
           c2=str_data.charCodeAt(i + 1);
           tmp_arr[ac++]=String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
           i +=2;
           } else {
           c2=str_data.charCodeAt(i + 1);
           c3=str_data.charCodeAt(i + 2);
           tmp_arr[ac++]=String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
           i +=3;
           }
           } 
           return tmp_arr.join('');
          }
          
          1. 原生JavaScript獲取窗體可見范圍的寬與高
          function getViewSize() {
           var de=document.documentElement;
           var db=document.body;
           var viewW=de.clientWidth==0 ? db.clientWidth : de.clientWidth;
           var viewH=de.clientHeight==0 ? db.clientHeight : de.clientHeight;
           return Array(viewW ,viewH);
          }
          
          1. 原生JavaScript判斷IE版本號(既簡潔、又向后兼容!)
          var _IE=(function(){
           var v=3, div=document.createElement('div'), all=div.getElementsByTagName('i');
           while (
           div.innerHTML='<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
           all[0]
           );
           return v > 4 ? v : false ;
          }());
          
          1. 原生JavaScript獲取瀏覽器版本號
          function browserVersion(types) {
           var other=1;
           for (i in types) {
           var v=types[i] ? types[i] : i;
           if (USERAGENT.indexOf(v) !=-1) {
           var re=new RegExp(v + '(\\/|\\s|:)([\\d\\.]+)', 'ig');
           var matches=re.exec(USERAGENT);
           var ver=matches !=null ? matches[2] : 0;
           other=ver !==0 && v !='mozilla' ? 0 : other;
           } else {
           var ver=0;
           }
           eval('BROWSER.' + i + '=ver');
           }
           BROWSER.other=other;
          }
          
          1. 原生JavaScript半角轉換為全角函數
          function ToDBC(str){
           var result='';
           for(var i=0; i < str.length; i++){
           code=str.charCodeAt(i);
           if(code >=33 && code <=126){
           result +=String.fromCharCode(str.charCodeAt(i) + 65248);
           }else if (code==32){
           result +=String.fromCharCode(str.charCodeAt(i) + 12288 - 32);
           }else{
           result +=str.charAt(i);
           }
           }
           return result;
          }
          
          1. 原生JavaScript全角轉換為半角函數


          者:小棋子js

          轉發鏈接:https://www.jianshu.com/p/b5171efa340f


          主站蜘蛛池模板: 精品久久久久一区二区三区 | 日韩人妻精品一区二区三区视频| 亚洲成AV人片一区二区密柚| 精品久久国产一区二区三区香蕉 | 国产伦精品一区二区三区视频金莲| 精品女同一区二区三区免费站| 蜜桃臀无码内射一区二区三区| 无码av免费一区二区三区试看| 久久精品国产亚洲一区二区| 成人乱码一区二区三区av| 午夜视频久久久久一区| 色多多免费视频观看区一区| 精彩视频一区二区| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 久久国产精品视频一区| 久久亚洲日韩精品一区二区三区| 波多野结衣一区二区三区| 日本一区二区在线不卡| 亚洲成在人天堂一区二区| 日本精品高清一区二区2021| 亚洲乱码一区二区三区在线观看 | 国产一区内射最近更新| 中文字幕在线无码一区| 亚洲欧美日韩中文字幕一区二区三区 | 国产在线精品一区二区在线看| 国产在线观看一区二区三区精品| 激情内射亚洲一区二区三区爱妻| 视频一区二区三区在线观看| 无码午夜人妻一区二区三区不卡视频 | 精品一区二区三区四区在线 | 亚洲日本乱码一区二区在线二产线 | 亚洲无线码一区二区三区| 无码少妇丰满熟妇一区二区 | 亚洲综合无码AV一区二区| 波多野结衣AV一区二区三区中文| 国产亚洲日韩一区二区三区| 日本免费一区二区三区最新| 性无码免费一区二区三区在线| 国产精品熟女视频一区二区| 人妻AV中文字幕一区二区三区| 一区二区手机视频|