javascript学习笔记(8)正则表达式
基本概念
正则表达式是一种文本模式,包括普通字符(例如,A和Z之间的字母)和特殊字符(称为“元字符”)。模式描述了搜索文本时要匹配的一个或多个字符串。
首先,我们推荐几个正则表达式编辑器:https://www.debuggex.com/PyRegex:http://www.pyregex.com/Regexper:http://www.regexper.com/
正则表达式是一种搜索和字符串替换操作。正则表达式广泛用于文本编辑器。例如,正则表达式用于:【复制】检查文本是否包含指定的特征词,找出匹配特征词在文本中的位置,并从文本中提取信息,如:字符串的子字符串修改文本。
描述:正则表达式通常用于两个任务:1。验证,2。搜索/替换。当用于验证时,通常需要在前后添加$和$来匹配要验证的整个字符串。在搜索/替换期间是否添加此限制取决于搜索要求。此外,还可以在前后添加\b而不是$和$等。本表中列出的所有正则表达式前后都没有限定,请根据需要自行处理。
优先顺序
构造正则表达式后,可以像数学表达式一样进行求值,也就是按照从左到右的优先顺序进行求值。下表列出了各种正则表达式运算符从最高优先级到最低优先级的优先级顺序:
运算符描述\转义符(),(?), (?=),[]括号和方括号*,{n}、{n、}、{n,m}限定符^、$、\ any元字符位置和顺序来建立正则表达式
构造正则表达式的方法与创建数学表达式的方法相同。也就是说,小表达式与各种元字符和运算符相结合来创建更大的表达式。您可以通过将表达式模式的各种组件放在一对分隔符之间来构造正则表达式。
对于JScript,分隔符是一对正斜杠(/)字符。示例:/expression/
对于VBScript,一对引号(')用于确定正则表达式的边界。例如:
复制代码如下:“表达式”
看一个例子
复制代码如下://匹配账号是否合法(字母开头允许5-16字节,字母数字下划线允许。
var re=新regexp('^[a-za-z][a-za-z0-9_]{5,19}$');If(re.test(aaaa)){alert('格式正确');}else{alert('格式错误');}
正则表达式的组成部分可以是单个字符、字符集、字符范围、字符之间的选择或所有这些组成部分的任意组合。
常用正则表达式
匹配汉字的正则表达式:[\u4e00-\u9fa5]评论:匹配中文真的很头疼。用这个表达很容易
匹配双字节字符(含汉字):[\ x00-\ xff]备注:可用于计算字符串长度(一个双字节字符计为2,ASCII字符计为1)
匹配空行的正则表达式:\n\s*\r注释:可用于删除空行
匹配HTML标记的正则表达式:(\S*?)[^]*.*?/\1|.*?/点评:网上流传的版本太烂了。上面的一个只能匹配部分,和复杂的嵌套标签还是没有任何关系
匹配前导和尾随空白字符的正则表达式:\ s * | \ s * $注释:可用于删除空白字符(包括空格、制表符、分页符等)。)在一行的开头和结尾,这是一个非常有用的表达式
匹配电子邮件地址的正则表达式:\ w([-]。]\ w)* @ \ w([-]。] \ w) * \。\ w ([-。] \ w) *备注:在验证表单时非常实用
与网站URL匹配的正则表达式:[a-za-z] ://[\ s] *备注:网上流传的版本功能有限,以上基本能满足需求
匹配账号是否合法(字母开头,允许5-16字节,允许字母数字下划线):[a-za-z] [a-za-z0-9 _] {4,15} $备注:验证时表单非常实用。
匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}备注:匹配形式为0511-4405222或021-8788822
匹配腾讯QQ号:[1-9][0-9]{4,}备注:腾讯QQ号从10000开始
匹配中国的邮政编码:[1-9]\d{5}(?\d)备注:中国邮政编码为6位数字
匹配身份证:\d{15}|\d{18}备注:中国身份证是15或18位数字
匹配ip地址:\d \。\d \。\d \。\d备注:提取ip地址时有用
匹配特定数字[副本][1-9]\ d * $//匹配正整数-[1-9]\ d * $//匹配负整数-?[1-9]\d*$ //匹配整数[1-9]\ d * | 0 $//匹配非负整数(正整数0)-[1-9]\ d * | 0 $//匹配非正整数(负整数0) [1-9] \ d ([1-9]\d*\。\d*|0\。\d*[1-9]\d*|0?\.0 |0)$ //匹配浮点数[1-9] \ d * \。\ d * | 0 \。\ d * [1-9] \ d * | 0?\.0 |0$ //匹配非负浮点数(正浮点数0)(-([1-9])\ d * \。\ d * | 0 \。\ d *[1-9]\ d *)| 0?\.0 |0$//匹配非正浮点数(负浮点数0)
注释:处理大量数据时有用,具体应用时注意修正
匹配特定字符串[副本][a-za-z]$//由26个英文字母组成的匹配字符串[a-z]$//由26个大写英文字母组成的匹配字符串[a-z]$//由26个小写英文字母组成的匹配字符串[a-za-z0-9]
评论:一些最基本和最常用的表达方式
思维导图
版权声明:javascript学习笔记(8)正则表达式是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。