正则表达式

正则表达式

正则用来定义一些字符串的规则,程序可以根据这些规则来判断一个字符串是否符合规则
也可以将一个字符串中符合规则的内容提取出来。

更多请点这里(菜鸟)

创建正则表达式

1.构造函数来创建对象

var reg = new RegExp("正则表达式", "匹配模式"); 
// test()方法
reg.test("字符串");	// 满足 true,不满足 false

这种方式更加灵活,第一个参数可以传一个变量

注意:使用构造函数时,由于它的参数是一个字符串,而 \ 是字符串中转义字符,如果要使用 \ 则需要使用 \ 来代替

2.字面量创建

var reg = /正则表达式/匹配模式;	// 这里正则不加 "",因为是字面量,也不能加变量
// 匹配模式可以多个一起写:/ig

let reg = /ab/	// 包含有"ab"

这种方式虽然简单,但会把正则写死,不灵活

语法:

匹配模式(修饰符):

  • i 忽略大小写(ignore)
  • g 全局匹配模式(默认为匹配1次)

设置匹配模式时,可以都不设置,也可以设置1个,也可以全设置,设置时没有顺序要求

表达式

  • | 或
  • [] 或
  • [^ ] 除了
表达式 描述
[abc..] 查找方括号内的任意一个字符
[^abc..] 查找不包括方括号内的任何字符
[a-z] 查找小写字母
[A-Z] 查找大写字母
[A-z] 任意字母,但是还包括了其他ASCII在此之中的
相当于/[a-z]/i
[0-9] 任意数字
[x-y] x的 ascii码到 y的 ascii码之间的值
() 结合成一组

元字符

在正则表达式中使用 \ 作为转义字符,若要找 \ 则用 \\

元字符 描述
. 表示任意一个字符
若要查找 . 本身,则用 \.
若是在构造函数里,则用 . ,而 \. 则表示 元字符 . ,因为构造函数里本身传的是字符串
\w 任意字母、数字和 _ ,[A-z0-9_]
\W 除了字母、数字和 _ ,[^A-z0-9_]
\d 任意的数字,[0-9]
\D 除了数字,[ ^0-9]
\s 空格
\S 除了空格
\b 单词边界
例如:/child/,在“children” 是true,而 /\bchild\b/,是false
\B 除了单词边界

量词

通过量词可以设置一个内容出现的次数
量词只对它前边的一个内容起作用

量词 描述
正好出现n次
出现m 到 n次
m次以上
n+ 至少有一个n,相当于 n
n* 0个或 多个n,相当于 n
n? 0个或 1个n,相当于 n
^n 以n 开头
n$ 以n 结尾

注意:如果在正则表达式中同时使用了 ^ $ 则要求字符串必须完全符合正则

//要求以a开头 或者 以a结尾
let reg = /^a|a$/;
let reg = /[^a$]/;

// 要求以a开头 并且 以a结尾
let reg = /^a.*a$/;

//只去掉两端的空格
let s = "     f    afa    ";
let reg = /^\s*|\s*$/g;	// 相当于 /(^\s*)|(\s*$)/g
s = s.replace(reg, "");
// 也可以使用 s.trim() 去掉两端空格 方法

方法:

方法名 描述
test() 可以用来检查一个字符串是否符合正则表达式
如果符合返回true,否则返回false
exec 检索字符串中指定的值。有,则返回该匹配的值,并确定其位置;没有,则返回 null
posted @ 2021-02-04 14:23  Liwker  阅读(61)  评论(0编辑  收藏  举报