前端開發經常使用代碼片斷(下篇)

二12、正則表達式html

//驗證郵箱

/^\w+@([0-9a-zA-Z]+[.])+[a-z]{2,4}$/

 
//驗證手機號

/^1[3|5|8|7]\d{9}$/


//驗證URL

/^http:\/\/.+\./


//驗證身份證號碼

/(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/


//匹配字母、數字、中文字符

/^([A-Za-z0-9]|[\u4e00-\u9fa5])*$/


//匹配中文字符

/[\u4e00-\u9fa5]/


//匹配雙字節字符(包括漢字)

/[^\x00-\xff]/

二十3、限制字符數ajax

<input id="txt" type="text">
//字符串截取

function getByteVal(val, max) { var returnValue = ''; var byteValLen = 0; for (var i = 0; i < val.length; i++) { if (val[i].match(/[^\x00-\xff]/ig) != null)byteValLen += 2; else byteValLen += 1; if (byteValLen > max) break; returnValue += val[i]; } return returnValue; } $('#txt').on('keyup', function () { var val = this.value; if (val.replace(/[^\x00-\xff]/g, "**").length > 14) { this.value = getByteVal(val, 14); } });

二十4、驗證碼倒計時正則表達式

<input id="send" type="button" value="發送驗證碼">

一、JavaScript實現緩存

var times = 60, // 時間設置60秒
 timer = null; document.getElementById('send').onclick = function () { // 計時開始
 timer = setInterval(function () { times--; if (times <= 0) { send.value = '發送驗證碼'; clearInterval(timer); send.disabled = false; times = 60; } else { send.value = times + '秒後重試'; send.disabled = true; } }, 1000); }

二、jQuery實現this

var times = 60, timer = null; $('#send').on('click', function () { var $this = $(this); // 計時開始
 timer = setInterval(function () { times--; if (times <= 0) { $this.val('發送驗證碼'); clearInterval(timer); $this.attr('disabled', false); times = 60; } else { $this.val(times + '秒後重試'); $this.attr('disabled', true); } }, 1000); });

二十5、倒計時跳轉spa

<div id="showtimes"></div>
// 設置倒計時秒數 

var t = 10; // 顯示倒計時秒數 

function showTime(){ t -= 1; document.getElementById('showtimes').innerHTML= t; if(t==0){ location.href='error404.asp'; } 
//每秒執行一次 showTime() setTimeout("showTime()",1000); } showTime();

二十6、時間戳、毫秒格式化插件

function formatDate(now) { var y = now.getFullYear(); var m = now.getMonth() + 1; // 注意 JavaScript 月份+1

    var d = now.getDate(); var h = now.getHours(); var m = now.getMinutes(); var s = now.getSeconds(); return y + "-" + m + "-" + d + " " + h + ":" + m + ":" + s; } var nowDate = new Date(1442978789184); alert(formatDate(nowDate));

二十7、當前日期code

var calculateDate = function(){ var date = new Date(); var weeks = ["日","一","二","三","四","五","六"]; return date.getFullYear()+"年"+(date.getMonth()+1)+"月"+ date.getDate()+"日 星期"+weeks[date.getDay()]; } $(function(){ $("#dateSpan").html(calculateDate()); });

二十8、判斷週六/週日orm

<p id="text"></p>
function time(y,m){ var tempTime = new Date(y,m,0); var time = new Date(); var saturday = new Array(); var sunday = new Array(); for(var i=1;i<=tempTime.getDate();i++){ time.setFullYear(y,m-1,i); var day = time.getDay(); if(day == 6){ saturday.push(i); }else if(day == 0){ sunday.push(i); } } var text = y+"年"+m+"月份"+"<br />"

                +"週六:"+saturday.toString()+"<br />"

                +"週日:"+sunday.toString(); document.getElementById("text").innerHTML = text; } time(2018,5);

二十9、AJAX調用錯誤處理htm

當 Ajax 調用返回 404 或 500 錯誤時,就執行錯誤處理程序。若是沒有定義處理程序,其餘的 jQuery 代碼或會就此罷工。定義一個全局的 Ajax 錯誤處理程序

$(document).ajaxError(function (e,xhr,settings,error){   console.log(error); })

三10、鏈式插件調用

jQuery 容許「鏈式」插件的方法調用,以減輕反覆查詢 DOM 並建立多個 jQuery 對象的過程。

$('#elem').show(); $('#elem').html('bla'); $('#elem').otherStuff();

經過使用鏈式,能夠改善

$('#elem').show().html('bla').otherStuff();

還有一種方法是在(前綴$)變量中高速緩存元素

var $elem = $('#elem'); $elem.show(); $elem.html('bla'); $elem.otherStuff();

鏈式和高速緩存的方法都是 jQuery 中可讓代碼變得更短和更快的最佳作法。

相關文章
相關標籤/搜索