正则表达式

正则表达式

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

创建正则表达式

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值