JS RegExp对象正则表达式详解
正则表达式是对字符串执行模式匹配的强大工具
创建RegExp对象:①var reg = new RegExp(pattern,attributes); ② var reg = /pattern/attributes;
参数pattern是一个字符串,指定正则表达式的模式或其他正则表达式
参数attributes是一个可选的字符串,包含属性“g”(全局匹配),“i”(区分大小写匹配),“m”(多行匹配),ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。
test()方法: 判断字符串是否匹配正则表达式,是则返回true,否则返回false
方括号匹配
[abc] 查找任何括号之间的字符,[^abc] 查找任何不在括号之间的字符
[0-9] 查找任何从 0 至 9 的数字,[a-z] 查找任何从小写 a 到小写 z 的字符,[A-Z] 查找任何从大写 A 到大写 Z 的字符,[A-z] 查找任何从大写 A 到小写 z 的字符
[adgk] 查找给定集合内的任何字符,[^adgk] 查找给定集合外的任何字符
(red|blue|green) 查找任何指定的选项
边界量词
^ 匹配开头,在多行检测中,会匹配一行的开头
$ 匹配结尾,在多行检测中,会匹配一行的结尾
支持正则表达式的String对象的方法
search() 返回与正则表达式相匹配的值的下标
march() 返回一个或多个与正则表达式相匹配的值
replace() 替换与正则表达式匹配的子串
split() 把字符串分割为字符串数组
元字符:拥有特动功能的特殊字符
. 查找单个字符,除了换行和行结束符
\w 查找单词字符,\W 查找非单词字符
\d 查找数字,\D 查找非数字字符
\s 查找空白字符,\S 查找非空白字符
\b 匹配单词边界,\B 匹配非单词边界
\0 查找 NUL字符,\n 查找换行符,\f 查找换页符,\r 查找回车符,\t 查找制表符,\v 查找垂直制表符
\xxx 查找以八进制字符,\xdd 查找以十六进制字符,\uxxxx 查找以十六进制Unicode字符
量词
n+ 匹配任何包含至少一个 n 的字符串(至少有一个小写字母)
n* 匹配任何包含零个或多个 n 的字符串(str = "a11bb22 cc"没有小写字母的和有小写字母的)
n? 匹配任何包含零个或一个 n 的字符串(str = "a11bb22 cc"没有小写字母和一个小写字母)
n{x} 匹配包含 x 个 n 的序列的字符串(str = "a11bb22 cc"指定只有两个小写字母)
n{x,y} 匹配包含最少 x 个、最多 y 个 n 的序列的字符串(str = "a11bb22 cc"指定最少一个小写字母最多两个小写字母)
n{x,} 匹配包含至少 x 个 n 的序列的字符串(str = "a11bb22 cc"指定至少两个小写字母)
n$ 匹配任何结尾为 n 的字符串(str = "a11bb22 cc"小写字母结束的)
^n 匹配任何开头为 n 的字符串(str = "a11bb22 cc"小写字母开头的)
?=n 匹配任何其后紧接指定字符串 n 的字符串(str = "a11bb22 cc"后面是小写字母的数字)
?!n 匹配任何其后没有紧接指定字符串 n 的字符串(str = "a11bb22 cc"后面不是小写字母的数字)
举例说明
邮件的基本格式为“名称@域名”
邮件名称由字母、数字、下划线、中划线组成,正则表达式为 [a-zA-Z0-9_-] ,需要用+表示多次出现;
域名规律为“[…].[二级域名].[*域名]”,即域名部分为“**.**.**”
“**”正则表达式为[a-zA-Z0-9_-]+
“.**”正则表达式为\.[a-zA-Z0-9_-]+
“**.**.**”正则表达式为(\.[a-zA-Z0-9_-]+)+
用“^”匹配邮箱的开始部分,用“$”匹配邮箱结束部分以保证邮箱前后不能有其他字符
所以邮箱正则:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$
异常抛出:
SyntaxError:如果pattern不是合法的正则表达式,或attributes含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。
TypeError:如果pattern是 RegExp 对象,但没有省略attributes参数,抛出该异常。
本文地址:https://blog.csdn.net/ysgz9749/article/details/107253507
下一篇: jQuery滚动加载图片效果的实现方法