正则表达式


正则表达式

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

更多请点这里(菜鸟)

创建正则表达式

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} 正好出现n次
{m,n} 出现m 到 n次
{m,} m次以上
n+ 至少有一个n,相当于 n{1,}
n* 0个或 多个n,相当于 n{0,}
n? 0个或 1个n,相当于 n{0,1}
^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

文章作者: Liwker
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Liwker !
评论
 上一篇
jQuery jQuery
了解jQuery 是什么: What? 一个JS函数库: write less, do more 封装简化DOM操作(CRUD) / Ajax 为什么用它: why? 强大选择器: 方便快速查找DOM元素 隐式遍历(迭代): 一次操作多
2021-04-20
下一篇 
js 线程机制与事件处理机制 js 线程机制与事件处理机制
线程与进程 进程: 程序的一次执行, 它占有一片独有的内存空间 可以通过windows任务管理器查看进程 线程: 是进程内的一个独立执行单元 是程序执行的一个完整流程 是CPU的最小的调度单元 关系 一个进程至少有一个线程(主) 程
2021-02-25
  目录