当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JS RegExp对象正则表达式详解

JS RegExp对象正则表达式详解

2020年07月11日  | 移动技术网IT编程  | 我要评论

正则表达式是对字符串执行模式匹配的强大工具

创建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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网