JS基础教程——正则表达式示例(推荐)
程序员文章站
2022-06-23 11:27:08
正则表达式的() [] {}有不同的意思。
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
(\s*)表示连续空格的字符串。
[]是定义匹...
正则表达式的() [] {}有不同的意思。
() 是为了提取匹配的字符串。表达式中有几个()就有几个相应的匹配字符串。
(\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基础教程——正则表达式示例,希望对大家有所帮助