正則表達式的() [] {}有不同的意思。
() 是為了提取匹配的字符串。表達式中有幾個()就有幾個相應的匹配字符串。
(/s*)表示連續空格的字符串。
[]是定義匹配的字符范圍。比如 [a-zA-Z0-9] 表示相應位置的字符要匹配英文字符和數字。[/s*]表示空格或者*號。
{}一般用來表示匹配的長度,比如 /s{3} 表示匹配三個空格,/s[1,3]表示匹配一到三個空格。
(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配數字(注意后面有 *,可以為空)[0-9]+ 匹配數字(注意后面有 +,不可以為空){1-9} 寫法錯誤。
[0-9]{0,9} 表示長度為 0 到 9 的數字字符串。
// 清除兩邊的空格 JS中需要自己寫正則,JQ中可直接調用$.trim(str)去除字符串前后空格String.prototype.trim = function() { return this.replace(/(^/s*)|(/s*$)/g, ''); }; // 合并多個空白為一個空白 String.prototype.ResetBlank = function() { var regEx = //s+/g; return this.replace(regEx, ' '); }; // 保留數字 String.prototype.GetNum = function() { var regEx = /[^/d]/g; return this.replace(regEx, ''); }; // 保留中文 String.prototype.GetCN = function() { var regEx = /[^/u4e00-/u9fa5/uf900-/ufa2d]/g; return this.replace(regEx, ''); }; // String轉化為Number String.prototype.ToInt = function() { return isNaN(parseInt(this)) ? this.toString() : parseInt(this); }; // 得到字節長度 String.prototype.GetLen = function() { var regEx = /^[/u4e00-/u9fa5/uf900-/ufa2d]+$/; if (regEx.test(this)) { return this.length * 2; } else { var oMatches = this.match(/[/x00-/xff]/g); var oLength = this.length * 2 - oMatches.length; return oLength; } }; // 獲取文件全名 String.prototype.GetFileName = function() { var regEx = /^.*//([^///?]*).*$/; return this.replace(regEx, '$1'); }; // 獲取文件擴展名 String.prototype.GetExtensionName = function() { var regEx = /^.*//[^//]*(/.[^/./?]*).*$/; return this.replace(regEx, '$1'); }; //替換所有String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.isPrototypeOf(reallyDo)) { return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi" : "g")), replaceWith); } else { return this.replace(reallyDo, replaceWith); } }; //格式化字符串 add By 劉景寧 2010-12-09 String.Format = function() { if (arguments.length == 0) { return ''; } if (arguments.length == 1) { return arguments[0]; } var reg = /{(/d+)?}/g; var args = arguments; var result = arguments[0].replace(reg, function($0, $1) { return args[parseInt($1) + 1]; }); return result; }; // 數字補零 Number.prototype.LenWithZero = function(oCount) { var strText = this.toString(); while (strText.length < oCount) { strText = '0' + strText; } return strText; }; // Unicode還原 Number.prototype.ChrW = function() { return String.fromCharCode(this); }; // 數字數組由小到大排序 Array.prototype.Min2Max = function() { var oValue; for (var i = 0; i < this.length; i++) { for (var j = 0; j <= i; j++) { if (this[i] < this[j]) { oValue = this[i]; this[i] = this[j]; this[j] = oValue; } } } return this; }; // 數字數組由大到小排序 Array.prototype.Max2Min = function() { var oValue; for (var i = 0; i < this.length; i++) { for (var j = 0; j <= i; j++) { if (this[i] > this[j]) { oValue = this[i]; this[i] = this[j]; this[j] = oValue; } } } return this; }; // 獲得數字數組中最大項 Array.prototype.GetMax = function() { var oValue = 0; for (var i = 0; i < this.length; i++) { if (this[i] > oValue) { oValue = this[i]; } } return oValue; }; // 獲得數字數組中最小項 Array.prototype.GetMin = function() { var oValue = 0; for (var i = 0; i < this.length; i++) { if (this[i] < oValue) { oValue = this[i]; } } return oValue; }; // 獲取當前時間的中文形式 Date.prototype.GetCNDate = function() { var oDateText = ''; oDateText += this.getFullYear().LenWithZero(4) + new Number(24180).ChrW(); oDateText += this.getMonth().LenWithZero(2) + new Number(26376).ChrW(); oDateText += this.getDate().LenWithZero(2) + new Number(26085).ChrW(); oDateText += this.getHours().LenWithZero(2) + new Number(26102).ChrW(); oDateText += this.getMinutes().LenWithZero(2) + new Number(20998).ChrW(); oDateText += this.getSeconds().LenWithZero(2) + new Number(31186).ChrW(); oDateText += new Number(32).ChrW() + new Number(32).ChrW() + new Number(26143).ChrW() + new Number(26399).ChrW() + new String('26085199682010819977222352011620845').substr(this.getDay() * 5, 5).ToInt().ChrW(); return oDateText; }; //擴展Date格式化 Date.prototype.Format = function(format) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小時 "H+": this.getHours(), //小時 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; var week = { "0": "/u65e5", "1": "/u4e00", "2": "/u4e8c", "3": "/u4e09", "4": "/u56db", "5": "/u4e94", "6": "/u516d" }; if (/(y+)/.test(format)) { format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); } if (/(E+)/.test(format)) { format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f" : "/u5468") : "") + week[this.getDay() + ""]); } 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; } Date.prototype.Diff = function(interval, objDate) { //若參數不足或 objDate 不是日期類型則回傳 undefined if (arguments.length < 2 || objDate.constructor != Date) { return undefined; } switch (interval) { //計算秒差 case 's': return parseInt((objDate - this) / 1000); //計算分差 case 'n': return parseInt((objDate - this) / 60000); //計算時差 case 'h': return parseInt((objDate - this) / 3600000); //計算日差 case 'd': return parseInt((objDate - this) / 86400000); //計算周差 case 'w': return parseInt((objDate - this) / (86400000 * 7)); //計算月差 case 'm': return (objDate.getMonth() + 1) + ((objDate.getFullYear() - this.getFullYear()) * 12) - (this.getMonth() + 1); //計算年差 case 'y': return objDate.getFullYear() - this.getFullYear(); //輸入有誤 default: return undefined; } }; //檢測是否為空 Object.prototype.IsNullOrEmpty = function() { var obj = this; var flag = false; if (obj == null || obj == undefined || typeof (obj) == 'undefined' || obj == '') { flag = true; } else if (typeof (obj) == 'string') { obj = obj.trim(); if (obj == '') {//為空 flag = true; } else {//不為空 obj = obj.toUpperCase(); if (obj == 'NULL' || obj == 'UNDEFINED' || obj == '{}') { flag = true; } } } else { flag = false; } return flag;
以上所述是小編給大家介紹的JS基礎教程——正則表達式示例,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!
新聞熱點
疑難解答