js前端數據驗證

var regexEnum = {

intege : "^-?[1-9]\\d*$", // 整數

intege1 : "^[1-9]\\d*$", // 正整數

intege2 : "^-[1-9]\\d*$", // 負整數

num : "^([+-]?)\\d*\\.?\\d+$", // 數字

num1 : "^([+]?)\\d*$", // 正數(正整數 + 0)

num2 : "^-[1-9]\\d*|0$", // 負數(負整數 + 0)

num3 : "^([+]?)\\d*\\.?\\d+$", // 正數

decmal : "^([+-]?)\\d*\\.\\d+$", // 浮點數

decmal1 : "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$", // 正浮點數

decmal2 : "^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$", // 負浮點數

decmal3 : "^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$", // 浮點數

decmal4 : "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$", // 非負浮點數(正浮點數 + 0)

decmal5 : "^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$", // 非正浮點數(負浮點數 +

// 0)

email : "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", // 郵件

color : "^[a-fA-F0-9]{6}$", // 顏色

url : "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$", // url

chinese : "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$", // 僅中文

ascii : "^[\\x00-\\xFF]+$", // 僅ACSII字符

zipcode : "^\\d{6}$", // 郵編

mobile : "^(13|15|18|14)[0-9]{9}$", // 手機

ip4 : "^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$", // ip地址

notempty : "^\\S+$", // 非空

picture : "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$", // 圖片

jpg : "(.*)\\.(jpg|gif)$", // 圖片

rar : "(.*)\\.(rar|zip|7zip|tgz)$", // 壓縮文件

date : "^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$", // 日期

qq : "^[1-9]*[1-9][0-9]*$", // QQ號碼

tel : "^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$", // 電話號碼的函數(包括驗證國內區號,國際區號,分機號)

username : "^\\w+$", // 用來用戶注冊。匹配由數字、26個英文字母或者下劃線組成的字符串

letter : "^[A-Za-z]+$", // 字母

letter_u : "^[A-Z]+$", // 大寫字母

letter_l : "^[a-z]+$", // 小寫字母

letter_num : "^\\w+$", // 匹配由數字、26個英文字母或者下劃線組成的字符串

idcard : "/(^/d{15}$)|(^/d{17}([0-9]|X)$)/", // 身份證

htmlcode : "^[^\\\\'\"<>@#$&]+$", // 禁止輸入html代碼(特殊字符)

uploadFile : "(.*)\\.(jpg|bmp|gif|png|jpeg|tif|pdf|doc|docx|xls|xlsx|ppt|pptx)$", // 圖片

};

/**

* 校驗文件擴展名

*

* @param str

* @returns {Boolean}

*/

function checkFile(str) {

if (isEmpty(str)) {

return true;

}

var strRegex = "(.jpg|.JPG|.gif|.GIF|.png|.PNG)$"; // 用于驗證圖片擴展名的正則表達式

var re = new RegExp(strRegex);

if (re.test(str)) {

return (true);

} else {

return (false);

}

}

function checkExcelFile(str) {

if (isEmpty(str)) {

return true;

}

var strRegex = "(.xls)$";

var re = new RegExp(strRegex);

if (re.test(str)) {

return (true);

} else {

return (false);

}

}

/**

* 正則校驗

*

* @param format

*? ? ? ? ? ? 格式

* @param val

*? ? ? ? ? ? 值

*/

function checkFormat(format, val) {

if (isEmpty(val)) {

if ("notempty" == format) {

return false;

}

return true;

}

var reg = regexEnum[format];

var r = val.match(reg);

if (r == null)

return false;

return true;

}

function isCardID(sId) {

if (isEmpty(sId)) {

return true;

}

var iSum = 0;

if (!/^\d{17}(\d|x)$/i.test(sId))

return "你輸入的身份證長度或格式錯誤";

sId = sId.replace(/x$/i, "a");

if (aCity[parseInt(sId.substr(0, 2))] == null)

return "你的身份證地區非法";

sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-"

+ Number(sId.substr(12, 2));

var d = new Date(sBirthday.replace(/-/g, "/"));

if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d

.getDate()))

return "身份證上的出生日期非法";

for ( var i = 17; i >= 0; i--)

iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);

if (iSum % 11 != 1)

return "你輸入的身份證號非法";

return true;// aCity[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女")

}

// 短時間,形如 (13:04:06)

function isTime(str) {

if (isEmpty(str)) {

return true;

}

var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);

if (a == null) {

return false;

}

if (a[1] > 24 || a[3] > 60 || a[4] > 60) {

return false;

}

return true;

}

//短時間,形如 (13:04)

function isTimeHM(str) {

if (isEmpty(str)) {

return false;

}

var a = str.match(/^(\d{1,2})(:)?(\d{1,2})$/);

if (a == null) {

alert("hm"+a);

return false;

}

if (a[1] > 24 || a[3] > 60) {

alert("hm"+a[1]);

alert("hm"+a[3]);

return false;

}

return true;

}

// 短日期,形如 (2003-12-05)

function isDate(str) {

if (isEmpty(str)) {

return true;

}

var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);

if (r == null)

return false;

var d = new Date(r[1], r[3] - 1, r[4]);

return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d

.getDate() == r[4]);

}

// 長時間,形如 (2003-12-05 13:04:06)

function isDateTime(str) {

if (isEmpty(str)) {

return true;

}

var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;

var r = str.match(reg);

if (r == null)

return false;

var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]);

return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3]

&& d.getDate() == r[4] && d.getHours() == r[5]

&& d.getMinutes() == r[6] && d.getSeconds() == r[7]);

}

// 空字符串

function isEmpty(str) {

if ((str == null) || (str.toString().replace(/\s+/g, "") == "")) {

return true;

} else {

return false;

}

}

function isNotEmpty(str) {

if ((str == null) || (str.toString().replace(/\s+/g, "") == "")) {

return false;

} else {

return true;

}

}

// 數字最值(最小值,最大值,必須輸入)

function isNumRange(str, minNum, maxNum) {

if (isEmpty(str)) {

return true;

}

var num = parseFloat(str);

if (!isEmpty(minNum) && num < minNum) {

return false;

} else if (!isEmpty(maxNum) && num > maxNum) {

return false;

} else {

return true;

}

}

// 字符串最大長度

function isMaxLength(str, maxLength) {

if (isEmpty(str)) {

return true;

}

var len = str.length;

if (len > maxLength) {

return false;

} else {

return true;

}

}

// 字符串最小長度

function isMinLength(str, minLength) {

if (isEmpty(str)) {

return true;

}

var len = str.length;

if (len < minLength) {

return false;

} else {

return true;

}

}

// 小數精確度(maxL:整數部分長度,maxF:小數部分長度)

function isMaxLengthForDouble(str, maxL, maxF) {

if (isEmpty(str)) {

return true;

}

var vals = str.split(".");

if ((vals[0].length > maxL) || (vals[1].length > maxF)) {

return false;

} else {

return true;

}

}

// 字符串固定長度

function isLength(str, length) {

if (isEmpty(str)) {

return true;

}

var len = str.length;

if (len != length) {

return false;

} else {

return true;

}

}

// 失去焦點時do

// obj校驗(jquery)對象,objSpan提示對象, fun執行函數

function onBlurShow(obj, fun) {

obj.blur(fun);

}

// 時間格式轉化 date轉化成String 方法date.format("時間格式")

Date.prototype.format = function(format) {

var o = {

"M+" : this.getMonth() + 1, // month

"d+" : this.getDate(), // day

"h+" : this.getHours(), // hour

"m+" : this.getMinutes(), // minute

"s+" : this.getSeconds(), // second

"q+" : Math.floor((this.getMonth() + 3) / 3), // quarter

"S" : this.getMilliseconds()

// millisecond

};

if (/(y+)/.test(format))

format = format.replace(RegExp.$1, (this.getFullYear() + "")

.substr(4 - RegExp.$1.length));

for ( var k in o)

if (new RegExp("(" + k + ")").test(format))

format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k]

: ("00" + o[k]).substr(("" + o[k]).length));

return format;

};

// 最小日期

function isMinDate(date, minDate) {

if (isEmpty(date)) {

return true;

}

var r1 = date.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);

var d1 = new Date(r1[1], r1[3] - 1, r1[4]);

var d2 = new Date();

d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());

if (minDate != "now") {

var r2 = minDate.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);

d2 = new Date(r2[1], r2[3] - 1, r2[4]);

}

var t1 = d1.getTime();

var t2 = d2.getTime();

if (t1 < t2) {

return false;

} else {

return true;

}

}

// 最大日期

function isMaxDate(date, maxDate) {

if (isEmpty(date)) {

return true;

}

var r1 = date.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);

var d1 = new Date(r1[1], r1[3] - 1, r1[4]);

var d2 = new Date();

d2 = new Date(d2.getFullYear(), d2.getMonth(), d2.getDate());

if (maxDate != "now") {

var r2 = maxDate.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);

d2 = new Date(r2[1], r2[3] - 1, r2[4]);

}

var t1 = d1.getTime();

var t2 = d2.getTime();

if (t1 > t2) {

return false;

} else {

return true;

}

}

// 字符串截取

function spliceStr(str) {

if (!isEmpty(str)) {

if (str.length > 5) {

str = str.substr(0, 5) + "..";

return str;

}

} else {

return "";

}

}

/**

* 判斷數組是否有重復元素

*

* @param elementArray

* @returns {Boolean}

*/

function isDuplicate(elementArray) {

var nary = elementArray.sort();

for ( var i = 0; i < nary.length; i++) {

if (nary[i] == nary[i + 1]) {

return true;

}

}

return false;

}

/**

* 去掉字符串左邊空格

*

* @param str

* @returns

*/

function ltrim(str) {

var pattern = new RegExp("^[\\s]+", "gi");

return str.replace(pattern, "");

}

/**

* 去掉字符串右邊空格

*

* @param str

* @returns

*/

function rtrim(str) {

var pattern = new RegExp("[\\s]+$", "gi");

return str.replace(pattern, "");

}

/**

* 去掉字符串左右空格

*

* @param str

* @returns

*/

function trim(str) {

return rtrim(ltrim(str));

}

// 開始時間 - 結束時間 yyyy-mm-dd

function check(startTime, endTime) {

if (startTime.length > 0 && endTime.length > 0) {

var startTmp = startTime.split("-");

var endTmp = endTime.split("-");

var sd = new Date(startTmp[0], startTmp[1], startTmp[2]);

var ed = new Date(endTmp[0], endTmp[1], endTmp[2]);

if (sd.getTime() > ed.getTime()) {

return false;

}

}

return true;

}

// 格式 yyyy-MM

function checkTime(startTime, endTime) {

if (startTime.length > 0 && endTime.length > 0) {

startTime = startTime + "/01";

endTime = endTime + "/01";

var startTimeTmp = startTime.replace(/-/g, "/");

var endTimeTmp = endTime.replace(/-/g, "/");

var d1 = new Date(Date.parse(startTimeTmp));

var d2 = new Date(Date.parse(endTimeTmp));

if (d1 > d2) {

return false;

}

}

return true;

}

// 格式 HH:mm:ss

function compareTime(interviewDate, startTime, endTime) {

var startDate = interviewDate + " " + startTime;

var endDate = interviewDate + " " + endTime;

if (startDate.length > 0 && endDate.length > 0) {

var startDateTemp = startDate.split(" ");

var endDateTemp = endDate.split(" ");

var arrStartDate = startDateTemp[0].split("-");

var arrEndDate = endDateTemp[0].split("-");

var arrStartTime = startDateTemp[1].split(":");

var arrEndTime = endDateTemp[1].split(":");

var allStartDate = new Date(arrStartDate[0], arrStartDate[1],arrStartDate[2], arrStartTime[0], arrStartTime[1],arrStartTime[2]);

var allEndDate = new Date(arrEndDate[0], arrEndDate[1], arrEndDate[2],arrEndTime[0], arrEndTime[1], arrEndTime[2]);

if (allStartDate.getTime() >= allEndDate.getTime()) {

return false;

} else {

return true;

}

} else {

alert("時間不能為空");

return false;

}

}

function CurentTime() {

var now = new Date();

var year = now.getFullYear(); // 年

var month = now.getMonth() + 1; // 月

var day = now.getDate(); // 日

var hh = now.getHours(); // 時

var mm = now.getMinutes(); // 分

var clock = year + "-";

if (month < 10)

clock += "0";

clock += month + "-";

if (day < 10)

clock += "0";

clock += day + " ";

if (hh < 10)

clock += "0";

clock += hh + ":";

if (mm < 10)

clock += '0';

clock += mm;

return (clock);

}

function CurentYearMonth() {

var now = new Date();

var year = now.getFullYear(); // 年

var month = now.getMonth() + 1; // 月

var clock = year + "-";

if (month < 10)

clock += "0";

clock += month;

return (clock);

}

// 是否在數組內

function in_array(needle, haystack) {

if (typeof needle == 'string' || typeof needle == 'number') {

for ( var i in haystack) {

if (haystack[i] == needle) {

return true;

}

}

}

return false;

}

/**

* 去掉字符串最后一個逗號

* @param str

* @returns

*/

function delComma(str)

{

if(str.charAt(str.length-1) == ",")

{

str = str.substring(0, str.length-1);

}

return str;

}

/**

* 比較開始時間和結束時間

* @param currDate

* @param inputDate

* @returns {Boolean}

*/

function judegeDate(currDate,inputDate){

if(currDate.length>0 && inputDate.length>0){

var startTmp=currDate.split("-");

var endTmp=inputDate.split("-");

var sd=new Date(startTmp[0],startTmp[1],startTmp[2]);

var ed=new Date(endTmp[0],endTmp[1],endTmp[2]);

if(sd.getTime() > ed.getTime()){

return false;

}

}

return true;

}

/**

* 日期校驗正則表達式

* @param str

* @returns {Boolean}

*/

function isdate(str){

var reg = /^((((((0[48])|([13579][26])|([2468][048]))00)|([0-9][0-9]((0[48])|([13579][26])|([2468][048]))))-02-29)|(((000[1-9])|(00[1-9][0-9])|(0[1-9][0-9][0-9])|([1-9][0-9][0-9][0-9]))-((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30))|(((0[1-9])|(1[0-2]))-((0[1-9])|(1[0-9])|(2[0-8]))))))$/i;

if (reg.test(str)) return true;

return false;

}

/**

* 格式化日期

* @param value

* @returns {String}

*/

function formatDate(value){

var d = new Date(value);

var mon = d.getMonth() + 1;

var day = d.getDate();

var hours = d.getHours();

var minute = d.getMinutes();

var second = d.getSeconds();

return d.getFullYear() + "-" + (mon >= 10 ? mon : "0" + mon) + "-" + (day >= 10 ? day : "0" + day) + " " + (hours >= 10 ? hours : "0" + hours) + ":" + (minute >= 10 ? minute : "0" + minute) + ":" + (second >= 10 ? second : "0" + second);

}

function checkSearchDateTimeBox(strBeginId,strEndId){

var beginvalue = $('#' + strBeginId).datetimebox('getValue');

var endvalue? = $('#' + strEndId).datetimebox('getValue');

if (endvalue != '' &&? beginvalue!=''){

return (endvalue >= beginvalue);

}

return true;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,224評論 6 529
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 97,916評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,014評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,466評論 1 308
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,245評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,795評論 1 320
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,869評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,010評論 0 285
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,524評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,487評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,634評論 1 366
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,173評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,884評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,282評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,541評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,236評論 3 388
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,623評論 2 370

推薦閱讀更多精彩內容

  • var regexEnum = { intege : "^-?[1-9]\\d*$", // 整數 intege1...
    nick2046閱讀 308評論 0 2
  • 單例模式 適用場景:可能會在場景中使用到對象,但只有一個實例,加載時并不主動創建,需要時才創建 最常見的單例模式,...
    Obeing閱讀 2,084評論 1 10
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,775評論 18 139
  • 浮生染六趣,初道失光環。 彼岸花明淹,藉川泛渡船。 路直難行遠,奇石絕頂端. 日腳踏青原,裂云撕破天。
    陽春閱讀 245評論 0 1
  • 微風輕輕的吹 搖晃著樹枝 蒼老的樹皮隨風落下 紫荊花在風中輕舞 多么美 摘下一枝送給你 愿你不忘記 有紫荊花陪伴的...
    綴滿星星的夜空只有我閱讀 331評論 0 2