欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS RegExp对象正则表达式详解

程序员文章站 2022-08-09 16:10:54
正则表达式是对字符串执行模式匹配的强大工具创建RegExp对象:①var reg = new RegExp(pattern,attributes); ② var reg = /pattern/attributes;参数pattern是一个字符串,指定正则表达式的模式或其他正则表达式参数attributes是一个可选的字符串,包含属性“g”(全局匹配),“i”(区分大小写匹配),“m”(多行匹配),ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符....

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

创建RegExp对象:①var reg = new RegExp(pattern,attributes);  ② var reg = /pattern/attributes;

参数pattern是一个字符串,指定正则表达式的模式或其他正则表达式

参数attributes是一个可选的字符串,包含属性“g”(全局匹配),“i”(区分大小写匹配),“m”(多行匹配),ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

test()方法: 判断字符串是否匹配正则表达式,是则返回true,否则返回false

方括号匹配

[abc] 查找任何括号之间的字符,[^abc] 查找任何不在括号之间的字符

JS RegExp对象正则表达式详解

[0-9] 查找任何从 0 至 9 的数字,[a-z] 查找任何从小写 a 到小写 z 的字符,[A-Z] 查找任何从大写 A 到大写 Z 的字符,[A-z] 查找任何从大写 A 到小写 z 的字符

JS RegExp对象正则表达式详解

[adgk] 查找给定集合内的任何字符,[^adgk] 查找给定集合外的任何字符

JS RegExp对象正则表达式详解

(red|blue|green)  查找任何指定的选项

JS RegExp对象正则表达式详解

边界量词

^    匹配开头,在多行检测中,会匹配一行的开头
$    匹配结尾,在多行检测中,会匹配一行的结尾

JS RegExp对象正则表达式详解

支持正则表达式的String对象的方法

search() 返回与正则表达式相匹配的值的下标

JS RegExp对象正则表达式详解

march() 返回一个或多个与正则表达式相匹配的值

JS RegExp对象正则表达式详解

replace() 替换与正则表达式匹配的子串

JS RegExp对象正则表达式详解

split() 把字符串分割为字符串数组

JS RegExp对象正则表达式详解

元字符:拥有特动功能的特殊字符

.    查找单个字符,除了换行和行结束符

JS RegExp对象正则表达式详解
\w    查找单词字符,\W    查找非单词字符

JS RegExp对象正则表达式详解
\d    查找数字,\D    查找非数字字符

JS RegExp对象正则表达式详解
\s    查找空白字符,\S    查找非空白字符

JS RegExp对象正则表达式详解
\b    匹配单词边界,\B    匹配非单词边界

JS RegExp对象正则表达式详解
\0    查找 NUL字符,\n    查找换行符,\f    查找换页符,\r    查找回车符,\t    查找制表符,\v    查找垂直制表符

JS RegExp对象正则表达式详解
\xxx    查找以八进制字符,\xdd    查找以十六进制字符,\uxxxx    查找以十六进制Unicode字符

JS RegExp对象正则表达式详解

量词

n+    匹配任何包含至少一个 n 字符串(至少有一个小写字母)

JS RegExp对象正则表达式详解
n*    匹配任何包含零个或多个 n字符串(str = "a11bb22 cc"没有小写字母的和有小写字母的)

JS RegExp对象正则表达式详解
n?    匹配任何包含零个或一个 n 的字符串(str = "a11bb22 cc"没有小写字母和一个小写字母)

JS RegExp对象正则表达式详解
n{x}    匹配包含 x 个 n 的序列的字符串(str = "a11bb22 cc"指定只有两个小写字母)

JS RegExp对象正则表达式详解
n{x,y}    匹配包含最少 x 个、最多 y 个 n 的序列的字符串(str = "a11bb22 cc"指定最少一个小写字母最多两个小写字母)

JS RegExp对象正则表达式详解
n{x,}    匹配包含至少 x 个 n 的序列的字符串(str = "a11bb22 cc"指定至少两个小写字母)

JS RegExp对象正则表达式详解

n$    匹配任何结尾为 n 的字符串(str = "a11bb22 cc"小写字母结束的)

JS RegExp对象正则表达式详解
^n    匹配任何开头为 n 的字符串(str = "a11bb22 cc"小写字母开头的)

JS RegExp对象正则表达式详解
?=n    匹配任何其后紧接指定字符串 n 的字符串(str = "a11bb22 cc"后面是小写字母的数字)

JS RegExp对象正则表达式详解
?!n    匹配任何其后没有紧接指定字符串 n 的字符串(str = "a11bb22 cc"后面不是小写字母的数字)

JS RegExp对象正则表达式详解

举例说明

邮件的基本格式为“名称@域名”

邮件名称由字母、数字、下划线、中划线组成,正则表达式为 [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_-]+)+$

JS RegExp对象正则表达式详解

异常抛出:

SyntaxError:如果pattern不是合法的正则表达式,或attributes含有 "g"、"i" 和 "m" 之外的字符,抛出该异常。

JS RegExp对象正则表达式详解

TypeError:如果pattern是 RegExp 对象,但没有省略attributes参数,抛出该异常。

 

本文地址:https://blog.csdn.net/ysgz9749/article/details/107253507