正则表达式 女爷i 2021-09-20 08:30 350阅读 0赞 近日在学习正则表达式 今天做初步总结 不足之处 欢迎指出 正则的功能:匹配字符串;可结合String函数处理字符串。 常用函数:str.match(Exp)、Exp.text(str),此外还有str.replace(Exp,replaceStr) 区别:语法结构相反;match返回匹配的字符串, text返回布尔值 正则的两种写法:/Exp/、new RegExp("Exp") 区别:/Exp/书写方便,但只能匹配常量,无法解析变量 ;new RegExp("Exp")可解析变量 语法(常用): 标识符:g(全局匹配)、i(不区分大小写)、m(多行匹配),可同时使用,例如:/Exp/gi、new RegExp("Exp","g"); 量词:\{3,6\}表示3-6个,例如/\\w\{3,6\}/表示3-6个字符 等同于\{1,\}表示至少有一个或者无限多个 等同于\{0,\}表示0个或多个,可有可无 ?等同于\{0,1\}表示0个或一个 \{3\}表示3个 元字符:(大小写匹配正好相反,例如\\d匹配数字 \\D匹配非数字) . 匹配单个字符 \\d 匹配数字 \\w 匹配字符 \\s 匹配空格 \\b 匹配独立部分,例如单词边界 holle worldhello 正则:/\\bhello\\b/g匹配到第一个 字符集:\[a-z\] \[a-z\] 匹配小写字母 \[A-Z\] 匹配大写字母 \[0-9\] 匹配数字 \[0-9a-zA-Z\]三者为逻辑或关系,可匹配小写字母或大写字母或大写数字 开始与结束: ^ 表示开始 $ 表示结束 逻辑:ab(与)、a|b(或)、\[^0-9\](非) \[^0-9\] 在字符集中的^表示逻辑非,这里表示非数字 ab 表示逻辑与,例如/ab/匹配连着的ab a|b 表示逻辑或 ,可以符合a逻辑或者b逻辑,例如/^\\d+![|^\[a-z\]+][a-z]/g匹配整串数字或小写字母 子集:()里面是一个集合 例如:原来/abc+/可以匹配到abcccc,但是/(abc)+/匹配到的是abcabcabc 子集特殊语法:引自([www.cnblogs.com/deerchao/ar…][www.cnblogs.com_deerchao_ar] 值得一提的是(?!exp)匹配的是后面跟的不是exp的位置,可用于验证必须同时具有n种类型的字符串 例子中有用到 正则小练习: <!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> <style type="text/css"> html,body{ font-family: "微软雅黑"; font-size:16px; line-height: 30px; } .red{ color: red; } .p{ padding-left:50px; } </style> </head> <body> </body> <script type="text/javascript"> var mailstr="lory_1234gggg56@qq163.com.com"; var qqstr="57729945024"; //var phonestr="15635395946"; var phonestr2="010-3535946"; var idstr="13050219951128494X"; var mmstr="Zaaaaaaaaaa1a"; var or="aaaaaaaaaaaa"; var cc="alilili" var reg= { mail:/^[0-9a-zA-Z_]+@[0-9a-zA-Z]+(\.[a-z]+){1,2}$/g,//可包含大小写字母,并有@符号,包含.符号 qq:/^\d{5,12}$/g,//5-12位数字 phone:/^(0[0-9]{2}[\d-]{1})?\d{7}$|^\d{11}$/g,//规则一:第一位为0,二三位为数字,第四位为数字或-,后跟7位数字;规则2:座机去除前4位(例如010-);规则二:11位数字 idcard:/^\d{17}[0-9x]$/gi,//18位数字,最后一位可为X,不区分大小写 mm:/^(?![0-9a-z]+$)(?![0-9A-Z]+$)(?![a-zA-Z]+$)[0-9a-zA-Z]{6,18}$/g,//匹配非全数字 非全字母 密码必须由大写字母、小写字母、数字组合成,长度为6-18位 or:/^\d+$|^[a-z]+$/g, cc:/a(li)+/g } var des={ mail:"邮箱:可包含大小写字母,并有@符号,包含.符号", qq:"qq:5-12位数字", phone:"电话号码:规则一:第一位为0,二三位为数字,第四位为数字或-,后跟7位数字;规则2:座机去除前4位(例如010-);规则二:11位数字" , idcard:"身份证号码:18位数字,最后一位可为X,不区分大小写", mm:"密码:匹配非全数字 非全字母 密码必须由大写字母、小写字母、数字组合成,长度为6-18位", or:"逻辑或测试", cc:"子集测试" } fn.call(mailstr,"mail"); fn.call(qqstr,"qq"); //fn.call(phonestr,"phone"); fn.call(phonestr2,"phone"); fn.call(idstr,"idcard"); fn.call(mmstr,"mm"); fn.call(or,"or"); fn.call(cc,"cc"); function fn(c) { document.write("正则:<span class='red'>"+reg[c]+"</span><br/><span class='p'>"+des[c]+"</span><span class='p'>匹配字符:"+this.match(reg[c])+"</span><br/>"); } </script> </html> 复制代码 修改以下正则: /[EMOT](1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|800|801|802|803|zyg)[\/EMOT]/g 复制代码 需求:匹配\[EMOT\]1-80数字或800-803数字或zyg\[/EMOT\] var reg=/\[EMOT\]([1-7]{1,2}|[1-8]0|78|79|80[0-3]|zyg)\[\/EMOT\]/g; var str="[EMOT]22[/EMOT][EMOT]78[/EMOT][EMOT]80[/EMOT][EMOT]00[/EMOT][EMOT]10[/EMOT][EMOT]800[/EMOT][EMOT]803[/EMOT][EMOT]804[/EMOT][EMOT]zyg[/EMOT][EMOT]z[/EMOT]"; var reg2=/\[EMOT\](1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|800|801|802|803|zyg)\[\/EMOT\]/g; console.log(str.match(reg)); console.log(str.match(reg2)); 复制代码 //去除html标签 var str="<p>免费、即时的多语种在线翻译</p>↵↵<p>只要您到店,便可以给您一个满意的价格。</p><div>45555555555555</div>" var reg=/<\/?[a-z]+>/g; console.log(str.replace(reg,"")); 复制代码 正则是单个字符进行匹配的! 路漫漫其修远兮,吾将上下而求索 转载于:https://juejin.im/post/5cf5d77a5188255508118c68 [a-z]: /images/20210726/e28907a832124d5ba9d5a19ec7da0e7b.png [www.cnblogs.com_deerchao_ar]: https://link.juejin.im?target=http%3A%2F%2Fwww.cnblogs.com%2Fdeerchao%2Farchive%2F2006%2F08%2F24%2Fzhengzhe30fengzhongjiaocheng.html%25EF%25BC%2589
相关 【正则表达式】正则表达式及其应用 正则表达式 1. 什么是正则表达式? 百度百科提供的概念是这样的:正则表达式,又称规则表达式\\。\\(英语:Regular Expression,在代码中常简写为 旧城等待,/ 2022年09月15日 06:08/ 0 赞/ 459 阅读
相关 正则表达式 看一遍就完全搞定的正则表达式教程 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 墨蓝/ 2022年06月01日 11:59/ 0 赞/ 204 阅读
相关 正则表达式 > 概念:是指用来描述或者匹配一系列符合某个语法规则的字符的单个字符串,其实就是一种规则。有自己的特殊应用。 > String类中有一个 String.mat 川长思鸟来/ 2022年05月19日 08:15/ 0 赞/ 205 阅读
相关 正则表达式 正则表达式简介: 正则表达式,又称规则表达式,正则表达式是对字符串(包括普通字符(例如,[a-Z]之间的字母)和特殊字符(称为“元字符”))操作的一 种 约定不等于承诺〃/ 2022年04月18日 03:22/ 0 赞/ 272 阅读
相关 正则表达式 正则表达式解析 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。 例如,“n”匹配字符“n”。“\n”匹配一个换行符。 待我称王封你为后i/ 2022年04月17日 03:18/ 0 赞/ 221 阅读
相关 正则表达式 正则表达式 在线正则表达式测试:[http://tool.oschina.net/regex/][http_tool.oschina.net_regex] 正则表达式基础 ╰半夏微凉°/ 2022年04月03日 09:38/ 0 赞/ 276 阅读
相关 正则表达式 [在线正则表达式测试工具][Link 1] [深入理解正则表达式][Link 2] (1)var reg = /\d/; //先看reg匹配到的字符串只能是单个数字 我不是女神ヾ/ 2022年01月20日 06:11/ 0 赞/ 251 阅读
相关 正则表达式 摘抄自【[维基百科正则表达式][Link 1]】 表达式全集 <table style="border:10px solid a9a9a9;"> <tbody> 蔚落/ 2022年01月10日 04:29/ 0 赞/ 318 阅读
相关 正则表达式 package day_34_正则表达式; import java.util.Arrays; / 正则表达式:就是一个模 末蓝、/ 2021年10月26日 13:18/ 0 赞/ 400 阅读
还没有评论,来说两句吧...