正则~~

正则参数:

g: 全局

i: 不分大小写

m: 视为多行影响行首和行尾 ^or$

s: 视为单行模式,忽略换行

y: 从 `regexp.lastIndex` 开始匹配

u: 正确处理四个字符的 UTF-16 编码

创建正则的方法: 多个正则可以写在数组中进行验证

1 字面量创建  var reg = /a/

2 对象创建  var reg = new RegExp('a')

字面量创建和构造函数创建的区别:

	字面量匹配不可以直接是变量,构造函数匹配可以直接是变量
console.log("\d" === "d")  // true
注:字面量和对象创建中的转译写法

正则的匹配与字符串匹配的方法

正则对象方法:test / exec

	Reg.test(str)   ---- 返回true/false

	Reg.exec(str) ---- 返回数组/null

String对象方法:match / replace

	String.match(reg) ----返回数组/null (默认找到一个 可以设置g进行全局匹配)

	String.matchAll(reg) --- 返回迭代器

	String.replace(reg,'')  ---- 返回替换后的字符串

	String.search(reg)  --- 返回索引

	String.split(reg)   ---字符串转数组

正则属性

lastIndex:正则的属性
Reg.lastIndex = 4;  // 索引

原子表和原子组

原子表-----
[] 原子表 本身就有 ‘|’ 的逻辑运算

	原子表中的特殊字符,是其本身的字符串含义
	
原子组----
()原子组 使用前面的原子组用 /1 or /2 ...即可

  1 $符号的含义
      $1 $2 $3...   $n, 其中n代表第几个原子组中的值
      $& 匹配的内容 =》/0
      $` 内容替换成内容前面的内容
      $' 内容替换成内容后面的内容

 2 ?:忽略原子组
  	?: 忽略原子组 在math或exec中不记录原子组 如:(?:\w)
 3 原子组如何起别名
  	原子组起别名 ?<link>  (?<link>) 此组的别名是link link的内容是此组的内容

断言

断言 注意这是条件不是组
const str = '苹果元10元'
零宽前断言 ?=exp 匹配前面为 exp 的内容 (?=元)  const reg = /\d{2}(?=元)/gi;
零宽后断言 ?<=exp 匹配后面为 exp 的内容 (?<=元)  const reg = /(?<=元)\d{2}/gi;
console.log(str.replace(reg,'贵')) //苹果元贵元

?!exp 零宽负向先行断言 后面不能出现 exp 指定的内容
?<!exp 零宽负向后行断言 前面不能出现exp指定的内容



.  除换行外任何字符 (注:遇到第一个换行符继续匹配,知道遇到第二个停止)

^和$ 限时边界条件

\d 数字

\w 字母数字下划线

\s 空白和换行符



贪婪匹配
+ 一个或者多个
* 0个或者多个
? 0个或者1个
{1} 1个
{1,} 1个或多个
{1,5} 1个到5个

禁止贪婪 加?
如:   *?	重复任意次,但尽可能少重复
      +?	重复1次或更多次,但尽可能少重复
      ??	重复0次或1次,但尽可能少重复
      {n,m}?	重复n到m次,但尽可能少重复
      {n,}?	重复n次以上,但尽可能少重复
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值