<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        100個(gè)不能錯(cuò)過的實(shí)用JS自定義函數(shù)_javascript技巧

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:20:31
        文檔

        100個(gè)不能錯(cuò)過的實(shí)用JS自定義函數(shù)_javascript技巧

        100個(gè)不能錯(cuò)過的實(shí)用JS自定義函數(shù)_javascript技巧:1、原生JavaScript實(shí)現(xiàn)字符串長度截取 代碼如下:function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\xff]/; var strre = ; for (var i = 0; i if (icount temp = str.sub
        推薦度:
        導(dǎo)讀100個(gè)不能錯(cuò)過的實(shí)用JS自定義函數(shù)_javascript技巧:1、原生JavaScript實(shí)現(xiàn)字符串長度截取 代碼如下:function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\xff]/; var strre = ; for (var i = 0; i if (icount temp = str.sub

        1、原生JavaScript實(shí)現(xiàn)字符串長度截取
        代碼如下:
        function cutstr(str, len) {
        var temp;
        var icount = 0;
        var patrn = /[^\x00-\xff]/;
        var strre = "";
        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
        }
        strre += temp
        } else {
        break
        }
        }
        return strre + "..."
        }
        2、原生JavaScript獲取域名主機(jī)
        代碼如下:
        function getHost(url) {
        var host = "null";
        if(typeof url == "undefined"|| null == url) {
        url = window.location.href;
        }
        var regex = /^\w+\:\/\/([^\/]*).*/;
        var match = url.match(regex);
        if(typeof match != "undefined" && null != match) {
        host = match[1];
        }
        return host;
        }
        3、原生JavaScript清除空格
        代碼如下:
        String.prototype.trim = function() {
        var reExtraSpace = /^\s*(.*?)\s+$/;
        return this.replace(reExtraSpace, "$1")
        }
        4、原生JavaScript替換全部
        代碼如下:
        String.prototype.replaceAll = function(s1, s2) {
        return this.replace(new RegExp(s1, "gm"), s2)
        }
        5、原生JavaScript轉(zhuǎn)義html標(biāo)簽
        代碼如下:
        function HtmlEncode(text) {
        return text.replace(/&/g, '&').replace(/\"/g, '"').replace(//g, '>')
        }
        6、原生JavaScript還原h(huán)tml標(biāo)簽
        代碼如下:
        function HtmlDecode(text) {
        return text.replace(/&/g, '&').replace(/"/g, '\"').replace(//g, '>')
        }
        7、原生JavaScript時(shí)間日期格式轉(zhuǎn)換
        代碼如下:
        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
        }
        8、原生JavaScript判斷是否為數(shù)字類型
        代碼如下:
        function isDigit(value) {
        var patrn = /^[0-9]*$/;
        if (patrn.exec(value) == null || value == "") {
        return false
        } else {
        return true
        }
        }
        9、原生JavaScript設(shè)置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;"
        }
        10、原生JavaScript獲取cookie值
        代碼如下:
        function getCookie(name) {
        var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
        if (arr != null) return unescape(arr[2]);
        return null
        }
        11、原生JavaScript加入收藏夾
        代碼如下:
        function AddFavorite(sURL, sTitle) {
        try {
        window.external.addFavorite(sURL, sTitle)
        } catch(e) {
        try {
        window.sidebar.addPanel(sTitle, sURL, "")
        } catch(e) {
        alert("加入收藏失敗,請使用Ctrl+D進(jìn)行添加")
        }
        }
        }
        12、原生JavaScript設(shè)為首頁
        代碼如下:
        function setHomepage() {
        if (document.all) {
        document.body.style.behavior = 'url(#default#homepage)';
        document.body.setHomePage('http://www.jq-school.com')
        } else if (window.sidebar) {
        if (window.netscape) {
        try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
        } catch(e) {
        alert("該操作被瀏覽器拒絕,如果想啟用該功能,請?jiān)诘刂窓趦?nèi)輸入 about:config,然后將項(xiàng) 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://www.jq-school.com')
        }
        }
        13、原生JavaScript判斷IE6
        代碼如下:
        var ua = navigator.userAgent.toLowerCase();
        var isIE6 = ua.indexOf("msie 6") > -1;
        if (isIE6) {
        try {
        document.execCommand("BackgroundImageCache", false, true)
        } catch(e) {}
        }
        14、原生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)
        }
        }
        15、原生JavaScript返回腳本內(nèi)容
        代碼如下:
        function evalscript(s) {
        if(s.indexOf(' var p = /]*?>([^\x00]*?)<\/script>/ig;
        var arr = [];
        while(arr = p.exec(s)) {
        var p1 = /]*?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 = /([^\x00]+?)<\/script>/i;
        arr1 = p1.exec(arr[0]);
        appendscript('', arr1[2], arr1[1].indexOf('reload=') != -1);
        }
        }
        return s;
        }
        16、原生JavaScript清除腳本內(nèi)容
        代碼如下:
        function stripscript(s) {
        return s.replace(/.*?<\/script>/ig, '');
        }
        17、原生JavaScript動態(tài)加載腳本文件
        代碼如下:
        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. = false;
        scriptNode.onload = function () {
        scriptNode. = true;
        JSLOADED[src] = 1;
        };
        scriptNode.onreadystatechange = function () {
        if((scriptNode.readyState == 'loaded' || scriptNode.readyState == 'complete') && !scriptNode. {
        scriptNode. = true;
        JSLOADED[src] = 1;
        }
        };
        } else if(text){
        scriptNode.text = text;
        }
        document.getElementsByTagName('head')[0].appendChild(scriptNode);
        } catch(e) {}
        }
        18、原生JavaScript返回按ID檢索的元素對象
        代碼如下:
        function $(id) {
        return !id ? null : document.getElementById(id);
        }
        19、原生JavaScript返回瀏覽器版本內(nèi)容
        代碼如下:
        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;
        }
        20、原生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' : '';
        }
        }
        21、原生JavaScript中有insertBefore方法,可惜卻沒有insertAfter方法?用如下函數(shù)實(shí)現(xiàn)
        代碼如下:
        function insertAfter(newChild,refChild){
        var parElem=refChild.parentNode;
        if(parElem.lastChild==refChild){
        refChild.appendChild(newChild);
        }else{
        parElem.insertBefore(newChild,refChild.nextSibling);
        }
        }
        22、原生JavaScript中兼容瀏覽器綁定元素事件
        代碼如下:
        function addEventSamp(obj,evt,fn){
        if (obj.addEventListener) {
        obj.addEventListener(evt, fn, false);
        }else if(obj.attachEvent){
        obj.attachEvent('on'+evt,fn);
        }
        }
        23、原生JavaScript光標(biāo)停在文字的后面,文本框獲得焦點(diǎn)時(shí)調(diào)用
        代碼如下:
        function focusLast(){
        var e = event.srcElement;
        var r =e.createTextRange();
        r.moveStart('character',e.value.length);
        r.collapse(true);
        r.select();
        }
        24、原生JavaScript檢驗(yàn)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);
        }
        }
        }
        25、原生JavaScript格式化CSS樣式代碼
        代碼如下:
        function formatCss(s){//格式化代碼
        s = s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
        s = s.replace(/;\s*;/g, ";"); //清除連續(xù)分號
        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;
        }
        26、原生JavaScript壓縮CSS樣式代碼
        代碼如下:
        function yasuoCss (s) {//壓縮代碼
        s = s.replace(/\/\*(.|\n)*?\*\//g, ""); //刪除注釋
        s = s.replace(/\s*([\{\}\:\;\,])\s*/g, "$1");
        s = s.replace(/\,[\s\.\#\d]*\{/g, "{"); //容錯(cuò)處理
        s = s.replace(/;\s*;/g, ";"); //清除連續(xù)分號
        s = s.match(/^\s*(\S+(\s+\S+)*)\s*$/); //去掉首尾空白
        return (s == null) ? "" : s[1];
        }
        27、原生JavaScript獲取當(dāng)前路徑
        代碼如下:
        var currentPageUrl = "";
        if (typeof this.href === "undefined") {
        currentPageUrl = document.location.toString().toLowerCase();
        }
        else {
        currentPageUrl = this.href.toString().toLowerCase();
        }
        28、原生JavaScriptIP轉(zhuǎn)成整型
        代碼如下:
        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;
        }
        29、原生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;
        }
        30、原生JavaScript實(shí)現(xiàn)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;
        }
        }
        }

        注:移動篇 (31~40)
        31、原生JavaScript判斷是否移動設(shè)備
        代碼如下:
        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;
        }
        32、原生JavaScript判斷是否移動設(shè)備訪問
        代碼如下:
        function isMobileUserAgent(){
        return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));
        }
        33、原生JavaScript判斷是否蘋果移動設(shè)備訪問
        代碼如下:
        function isAppleMobileDevice(){
        return (/iphone|ipod|ipad|Macintosh/i.test(navigator.userAgent.toLowerCase()));
        }
        34、原生JavaScript判斷是否安卓移動設(shè)備訪問
        代碼如下:
        function isAndroidMobileDevice(){
        return (/android/i.test(navigator.userAgent.toLowerCase()));
        }
        35、原生JavaScript判斷是否Touch屏幕
        代碼如下:
        function isTouchScreen(){
        return (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
        }
        36、原生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;
        }
        37、原生JavaScript判斷是否打開視窗
        代碼如下:
        function isViewportOpen() {
        return !!document.getElementById('wixMobileViewport');
        }
        38、原生JavaScript獲取移動設(shè)備初始化大小
        代碼如下:
        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;
        }
        39、原生JavaScript獲取移動設(shè)備最大化大小
        代碼如下:
        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;
        }
        }
        40、原生JavaScript獲取移動設(shè)備屏幕寬度
        代碼如下:
        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;
        }
        41、原生JavaScript完美判斷是否為網(wǎng)址
        代碼如下:
        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;
        }
        }
        42、原生JavaScript根據(jù)樣式名稱檢索元素對象
        代碼如下:
        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
        }
        43、原生JavaScript判斷是否以某個(gè)字符串開頭
        代碼如下:
        String.prototype.startWith = function (s) {
        return this.indexOf(s) == 0
        }
        44、原生JavaScript判斷是否以某個(gè)字符串結(jié)束
        代碼如下:
        String.prototype.endWith = function (s) {
        var d = this.length - s.length;
        return (d >= 0 && this.lastIndexOf(s) == d)
        }
        45、原生JavaScript返回IE瀏覽器的版本號
        代碼如下:
        function getIE(){
        if (window.ActiveXObject){
        var v = navigator.userAgent.match(/MSIE ([^;]+)/)[1];
        return parseFloat(v.substring(0, v.indexOf(".")))
        }
        return false
        }
        46、原生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);
        }
        47、原生JavaScript獲取頁面scrollLeft
        代碼如下:
        function getPageScrollLeft(){
        var a = document;
        return a.documentElement.scrollLeft || a.body.scrollLeft;
        }
        48、原生JavaScript獲取頁面可視寬度
        代碼如下:
        function getPageViewWidth(){
        var d = document, a = d.compatMode == "BackCompat"
        ? d.body
        : d.documentElement;
        return a.clientWidth;
        }
        49、原生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);
        }
        50、原生JavaScript獲取頁面scrollTop
        代碼如下:
        function getPageScrollTop(){
        var a = document;
        return a.documentElement.scrollTop || a.body.scrollTop;
        }
        61、原生JavaScript解決offsetX兼容性問題
        代碼如下:
        // 針對火狐不支持offsetX/Y
        function getOffset(e){
        var target = e.target, // 當(dāng)前觸發(fā)的目標(biāo)對象
        eventCoord,
        pageCoord,
        offsetCoord;

        // 計(jì)算當(dāng)前觸發(fā)元素到文檔的距離
        pageCoord = getPageCoord(target);

        // 計(jì)算光標(biāo)到文檔的距離
        eventCoord = {
        X : window.pageXOffset + e.clientX,
        Y : window.pageYOffset + e.clientY
        };

        // 相減獲取光標(biāo)到第一個(gè)定位的父元素的坐標(biāo)
        offsetCoord = {
        X : eventCoord.X - pageCoord.X,
        Y : eventCoord.Y - pageCoord.Y
        };
        return offsetCoord;
        }

        function getPageCoord(element){
        var coord = { X : 0, Y : 0 };
        // 計(jì)算從當(dāng)前觸發(fā)元素到根節(jié)點(diǎn)為止,
        // 各級 offsetParent 元素的 offsetLeft 或 offsetTop 值之和
        while (element){
        coord.X += element.offsetLeft;
        coord.Y += element.offsetTop;
        element = element.offsetParent;
        }
        return coord;
        }
        62、原生JavaScript常用的正則表達(dá)式
        代碼如下:
        //正整數(shù)
        /^[0-9]*[1-9][0-9]*$/;
        //負(fù)整數(shù)
        /^-[0-9]*[1-9][0-9]*$/;
        //正浮點(diǎn)數(shù)
        /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
        //負(fù)浮點(diǎn)數(shù)
        /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
        //浮點(diǎn)數(shù)
        /^(-?\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字節(jié),允許字母數(shù)字下劃線)
        /^[a-zA-Z][a-zA-Z0-9_]{4,9}$/;
        //匹配空白行的正則表達(dá)式
        /\n\s*\r/;
        //匹配中國郵政編碼
        /[1-9]\d{5}(?!\d)/;
        //匹配身份證
        /\d{15}|\d{18}/;
        //匹配國內(nèi)電話號碼
        /(\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?)/;
        //匹配首尾空白字符的正則表達(dá)式
        /^\s*|\s*$/;
        //匹配HTML標(biāo)記的正則表達(dá)式
        < (\S*?)[^>]*>.*?|< .*? />;
        63、原生JavaScript實(shí)現(xiàn)返回頂部的通用方法
        代碼如下:
        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');
        64、原生JavaScript獲得URL中GET參數(shù)值
        代碼如下:
        // 用法:如果地址是 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]){
        GETs = querystr[1].split("&")
        GET =new Array()
        for(i=0;i tmp_arr = GETs[i].split("=")
        key=tmp_arr[0]
        GET[key] = tmp_arr[1]
        }
        }
        return querystr[1];
        }
        65、原生JavaScript實(shí)現(xiàn)全選通用方法
        代碼如下:
        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;
        }
        }
        }
        66、原生JavaScript實(shí)現(xiàn)全部取消選擇通用方法
        代碼如下:
        function uncheckAll(form) {
        for (var i=0;i var e = form.elements[i];
        if (e.name != 'chkall')
        e.checked=!e.checked;
        }
        }
        67、原生JavaScript實(shí)現(xiàn)打開一個(gè)窗體通用方法
        代碼如下:
        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();
        }
        }
        68、原生JavaScript判斷是否為客戶端設(shè)備
        代碼如下:
        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;
        }
        69、原生JavaScript獲取單選按鈕的值
        代碼如下:
        function get_radio_value(field){
        if(field&&field.length){
        for(var i=0;i if(field[i].checked){
        return field[i].value;
        }
        }
        }else {
        return ;
        }
        }
        70、原生JavaScript獲取復(fù)選框的值
        代碼如下:
        function get_checkbox_value(field){
        if(field&&field.length){
        for(var i=0;i if(field[i].checked && !field[i].disabled){
        return field[i].value;
        }
        }
        }else {
        return;
        }
        }
        (71~80)驗(yàn)證篇這一篇文章主要是10個(gè)比較常用表單驗(yàn)證功能,包括了郵箱、危險(xiǎn)字符、驗(yàn)證長度、驗(yàn)證網(wǎng)址、驗(yàn)證小數(shù)、整數(shù)、浮點(diǎn)數(shù)等常用的驗(yàn)證,有了這些代碼片段,平時(shí)的表單驗(yàn)證也可以不需要jquery的驗(yàn)證插件了,希望可以幫到大家。。
        71、原生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;
        }
        }
        72、原生JavaScript判斷是否有列表中的危險(xiǎn)字符
        代碼如下:
        function isValidReg(chars){
        var re=/<|>|\[|\]|\{|\}|『|』|※|○|●|◎|§|△|▲|☆|★|◇|◆|□|▼|㊣|﹋|⊕|⊙|〒|ㄅ|ㄆ|ㄇ|ㄈ|ㄉ|ㄊ|ㄋ|ㄌ|ㄍ|ㄎ|ㄏ|ㄐ|ㄑ|ㄒ|ㄓ|ㄔ|ㄕ|ㄖ|ㄗ|ㄘ|ㄙ|(zhì)ㄚ|ㄛ|ㄜ|ㄝ|ㄞ|ㄟ|ㄢ|ㄣ|ㄤ|ㄥ|ㄦ|ㄧ|ㄨ|ㄩ|■|▄|▆|\*|@|#|\^|\\/;
        if (re.test( chars) == true) {
        return false;
        }else{
        return true;
        }
        }
        73、原生JavaScript判斷字符串是否大于規(guī)定的長度
        代碼如下:
        function isValidLength(chars, len) {
        if (chars.length < len) {
        return false;
        }
        return true;
        }
        74、原生JavaScript判斷字符串是為網(wǎng)址不區(qū)分大小寫
        代碼如下:
        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;
        }
        75、原生JavaScript判斷字符串是否為小數(shù)
        代碼如下:
        function isValidDecimal( chars ) {
        var re=/^\d*\.?\d{1,2}$/;
        if (chars.match(re) == null)
        return false;
        else
        return true;
        }
        76、原生JavaScript判斷字符串是否為整數(shù)
        代碼如下:
        function isNumber( chars ) {
        var re=/^\d*$/;
        if (chars.match(re) == null)
        return false;
        else
        return true;
        }
        77、原生JavaScript判斷字符串是否為浮點(diǎn)數(shù)
        代碼如下:
        function isFloat( str ) {
        for(i=0;i if ((str.charAt(i)<"0" || str.charAt(i)>"9")&& str.charAt(i) != '.'){
        return false;
        }
        }
        return true;
        }
        78、原生JavaScript判斷字符是否為A-Za-z英文字母
        代碼如下:
        function isLetters( str ){
        var re=/^[A-Za-z]+$/;
        if (str.match(re) == null)
        return false;
        else
        return true;
        }
        79、原生JavaScript判斷字符串是否郵政編碼
        代碼如下:
        function isValidPost( chars ) {
        var re=/^\d{6}$/;
        if (chars.match(re) == null)
        return false;
        else
        return true;
        }
        80、原生JavaScript判斷字符是否空NULL
        代碼如下:
        function isNULL( chars ) {
        if (chars == null)
        return true;
        if (jsTrim(chars).length==0)
        return true;
        return false;
        }
        81、原生JavaScript用正則表達(dá)式提取頁面代碼中所有網(wǎng)址
        代碼如下:
        var aa = document.documentElement.outerHTML.match(/(url\(|src=|href=)[\"\']*([^\"\'\(\)\<\>\[\] ]+)[\"\'\)]*|(http:\/\/[\w\-\.]+[^\"\'\(\)\<\>\[\] ]+)/ig).join("\r\n").replace(/^(src=|href=|url\()[\"\']*|[\"\'\>\) ]*$/igm,"");
        alert(aa);
        82、原生JavaScript用正則表達(dá)式清除相同的數(shù)組(低效率)
        代碼如下:
        Array.prototype.unique=function(){
        return this.reverse().join(",").match(/([^,]+)(?!.*\1)/ig).reverse();
        }
        83、原生JavaScript用正則表達(dá)式清除相同的數(shù)組(高效率)
        代碼如下:
        String.prototype.unique=function(){
        var x=this.split(/[\r\n]+/);
        var y='';
        for(var i=0;i if(!new RegExp("^"+x[i].replace(/([^\w])/ig,"\\$1")+"$","igm").test(y)){
        y+=x[i]+"\r\n"
        }
        }
        return y
        }
        84、原生JavaScript用正則表達(dá)式按字母排序,對每行進(jìn)行數(shù)組排序
        代碼如下:
        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;
        }
        85、原生JavaScript字符串反序
        代碼如下:
        function IsReverse(text){
        return text.split('').reverse().join('');
        }
        86、原生JavaScript用正則表達(dá)式清除html代碼中的腳本
        代碼如下:
        function clear_script(){
        K1.value=K1.value.replace(/[\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,"");
        }
        87、原生JavaScript動態(tài)執(zhí)行JavaScript腳本
        代碼如下:
        function javascript(){
        try{
        eval(K1.value);
        }catch(e){
        alert(e.message);
        }
        }
        88、原生JavaScript動態(tài)執(zhí)行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,"腳本錯(cuò)誤!" \n End If',"vbscript")
        }catch(e){
        alert(e.message);
        }
        }
        89、原生JavaScript實(shí)現(xiàn)金額大寫轉(zhuǎn)換函數(shù)
        代碼如下:
        function transform(tranvalue) {
        try {
        var i = 1;
        var dw2 = new Array("", "萬", "億"); //大單位
        var dw1 = new Array("拾", "佰", "仟"); //小單位
        var dw = new Array("零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖"); //整數(shù)部分用
        //以下是小寫轉(zhuǎn)換成大寫顯示在合計(jì)大寫的文本框中
        //分離整數(shù)與小數(shù)
        var source = splits(tranvalue);
        var num = source[0];
        var dig = source[1];
        //轉(zhuǎn)換整數(shù)部分
        var k1 = 0; //計(jì)小單位
        var k2 = 0; //計(jì)大單位
        var sum = 0;
        var str = "";
        var len = source[0].length; //整數(shù)的長度
        for (i = 1; i <= len; i++) {
        var n = source[0].charAt(len - i); //取得某個(gè)位數(shù)上的數(shù)字
        var bn = 0;
        if (len - i - 1 >= 0) {
        bn = source[0].charAt(len - i - 1); //取得某個(gè)位數(shù)前一位上的數(shù)字
        }
        sum = sum + Number(n);
        if (sum != 0) {
        str = dw[Number(n)].concat(str); //取得該數(shù)字對應(yīng)的大寫數(shù)字,并插入到str字符串的前面
        if (n == '0') sum = 0;
        }
        if (len - i - 1 >= 0) { //在數(shù)字范圍內(nèi)
        if (k1 != 3) { //加小單位
        if (bn != 0) {
        str = dw1[k1].concat(str);
        }
        k1++;
        } else { //不加小單位,加大單位
        k1 = 0;
        var temp = str.charAt(0);
        if (temp == "萬" || temp == "億") //若大單位前沒有數(shù)字則舍去大單位
        str = str.substr(1, str.length - 1);
        str = dw2[k2].concat(str);
        sum = 0;
        }
        }
        if (k1 == 3) //小單位到千則大單位進(jìn)一
        {
        k2++;
        }
        }
        //轉(zhuǎn)換小數(shù)部分
        var strdig = "";
        if (dig != "") {
        var n = dig.charAt(0);
        if (n != 0) {
        strdig += dw[Number(n)] + "角"; //加數(shù)字
        }
        var n = dig.charAt(1);
        if (n != 0) {
        strdig += dw[Number(n)] + "分"; //加數(shù)字
        }
        }
        str += "元" + strdig;
        } catch(e) {
        return "0元";
        }
        return str;
        }
        //拆分整數(shù)與小數(shù)
        function splits(tranvalue) {
        var value = new Array('', '');
        temp = tranvalue.split(".");
        for (var i = 0; i < temp.length; i++) {
        value[i] = temp[i];
        }
        return value;
        }
        90、原生JavaScript常用的正則表達(dá)式大收集
        代碼如下:
        匹配中文字符的正則表達(dá)式: [\u4e00-\u9fa5]
        匹配雙字節(jié)字符(包括漢字在內(nèi)):[^\x00-\xff]
        匹配空行的正則表達(dá)式: [\s| ]*\r
        匹配 HTML 標(biāo)記的正則表達(dá)式:<(.*)>.*<\/\1>|<(.*) \/>
        匹配首尾空格的正則表達(dá)式:(^\s*)|(\s*$)
        匹配 IP 地址的正則表達(dá)式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g
        匹配 Email 地址的正則表達(dá)式:w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
        匹配網(wǎng)址 URL 的正則表達(dá)式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
        sql 語句:^(select|drop|delete|create|update|insert).*$
        非負(fù)整數(shù):^\d+$
        正整數(shù):^[0-9]*[1-9][0-9]*$
        非正整數(shù):^((-\d+)|(0+))$
        負(fù)整數(shù):^-[0-9]*[1-9][0-9]*$
        整數(shù):^-?\d+$
        非負(fù)浮點(diǎn)數(shù):^\d+(\.\d+)?$
        正浮點(diǎn)數(shù):^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
        非正浮點(diǎn)數(shù):^((-\d+\.\d+)?)|(0+(\.0+)?))$
        英文字符串:^[A-Za-z]+$
        英文大寫串:^[A-Z]+$
        英文小寫串:^[a-z]+$
        英文字符數(shù)字串:^[A-Za-z0-9]+$
        英數(shù)字加下劃線串:^\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})?$
        手機(jī)號碼:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$
        雙字節(jié)字符(包括漢字在內(nèi)):^\x00-\xff
        匹配首尾空格:(^\s*)|(\s*$)
        匹配 HTML 標(biāo)記:<(.*)>.*<\/\1>|<(.*) \/>
        匹配空行: [\s| ]*\r
        提取信息中的網(wǎng)絡(luò)鏈接:(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+)
        提取信息中的中國手機(jī)號碼:(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}
        提取信息中的浮點(diǎn)數(shù)(即小數(shù)):(-?\d*)\.?\d+
        提取信息中的任何數(shù)字 :(-?\d*)(\.\d+)?
        IP:(\d+)\.(\d+)\.(\d+)\.(\d+)
        電話區(qū)號:^0\d{2,3}$
        騰訊 QQ 號:^[1-9]*[1-9][0-9]*$
        帳號(字母開頭,允許 5-16 字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
        中文、英文、數(shù)字及下劃線:^[\u4e00-\u9fa5_a-zA-Z0-9]+$
        91、原生JavaScript實(shí)現(xiàn)窗體改變事件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

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        100個(gè)不能錯(cuò)過的實(shí)用JS自定義函數(shù)_javascript技巧

        100個(gè)不能錯(cuò)過的實(shí)用JS自定義函數(shù)_javascript技巧:1、原生JavaScript實(shí)現(xiàn)字符串長度截取 代碼如下:function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\xff]/; var strre = ; for (var i = 0; i if (icount temp = str.sub
        推薦度:
        標(biāo)簽: 100 js 100個(gè)
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 日本免费高清一本视频| 亚洲一区二区三区影院| 免费观看国产小粉嫩喷水| 大片免费观看92在线视频线视频| 国产亚洲美女精品久久久久狼| 羞羞漫画在线成人漫画阅读免费 | 亚洲VA中文字幕无码一二三区| 无码AV动漫精品一区二区免费| 久久精品国产亚洲av麻| 在线免费视频一区| a在线观看免费网址大全| 亚洲精品无码国产| 18禁超污无遮挡无码免费网站国产| 四虎国产精品成人免费久久 | 亚洲日产乱码一二三区别| 一级女人18毛片免费| 特级一级毛片免费看| 中文字幕亚洲综合久久| 亚洲黄片毛片在线观看| 香蕉97超级碰碰碰免费公| 精品免费久久久久国产一区 | 亚洲一区二区三区在线观看蜜桃| 久久九九兔免费精品6| jyzzjyzz国产免费观看| 国产成人精品日本亚洲网址| 中文字幕亚洲专区| 野花香在线视频免费观看大全 | 在线免费观看h片| 亚洲黄色一级毛片| 亚洲中文字幕久久精品无码APP | 青柠影视在线观看免费高清| 亚洲爆乳无码专区www| 亚洲欧洲国产成人精品| 最新仑乱免费视频| 狠狠综合亚洲综合亚洲色| 亚洲福利视频一区二区| 最近免费中文字幕中文高清| 国产精品久久久久久亚洲影视| 亚洲欧洲精品在线| 免费一级特黄特色大片在线观看| 色噜噜狠狠色综合免费视频|