JS对象—2.工具函数(RegExp)

正则表达式教程: https://blog.csdn.net/h610443955/article/details/81079439.创建和操作
	reg = new RegExp(abc);
	reg = /abc/; 简洁写法, 效果等同
	//字符串方法
	"abc".match(reg) /g形式下不捕获括号值,没有index和input属性
	"abc".search(reg)
	"abc".replace(reg, "x")
	"abc".split(reg)
	//正则方法
	reg.test("abc")
	reg.exec("abc") /g形式下需要同个正则对象每执行一次exec返回一次匹配结果
	//正则属性
	reg.lastIndex exec的下一个匹配的开始位置
	reg.global 是否全局匹配
	reg.ignoreCase 是否忽略大小写
	reg.multiline 是否多行匹配
	reg.source 查看正则表达式
	
二.字符匹配语法
	1.基本
		/abc/ 包含abc
		/[^a]bc/ 取反, 包含 不是a + bc
		/(good|nice)/ 分支, 包含good或者nice
		/abc/g 全局匹配, 默认匹配第一个
		/abc/i 忽略大小写
		/abc/m 影响^和$,使其变成行头行尾
		
		
	2.量词
		/ab{2,5}c/ 包含 a + (2~5个b) + c
		{m,} 至少m个
		{m} m个
		? = {0,1} 至多1+ = {1,} 至少1* = {0,} 任意个
		{m,n}?, ??, +?, *??,惰性匹配,当最少数量匹配时即按最少的
		
	3.字符组
		/a[123]b/ 包含 a + (123任一值) + c
		/[1-9a-zA-Z]/ 包含 (1~9或a~z或A~Z任一值)
		/[-az][az-][a\-z]/ 包含(-az任一值),不写成a-z
	
		简写
		\d = [0-9] 数字
		\D = [^0-9] 非数字
		\w = [0-9a-zA-Z_] 单词(数字字母下划线)
		\W = [^0-9a-zA-Z_] 非单词
		\s = [\t\v\n\r\f] 空白符(空格,水平制表,垂直制表,换行,回车,换页)
		\S = [^\t\v\n\r\f] 非空白符
		 . = 通配符,除换行符回车符行分隔符和段分隔符外
		[\d\D] = 所有字符
		
	4.匹配特殊字符,前面加\
		正斜杠 \/		反斜杠  \\
		点号	  \.	星号	   \*.位置匹配语法
	1.锚点
		^  匹配开头
		$  匹配结尾
		\b 单词边界
		\B 非单词边界
		(?=p) p代表子模式,即p的前面位置
		(?!p) 非p的前面位置
	2.示例
		"你好".replace(/^|$/g, "#")"#你好#"
		 ----------------------------------------------
		"123456789".replace(/(?!^)(?=(\d{3})+$)/g, ",")"123,456,789"
		-----------------------------------------------.括号
	1.基本
		./(ab)+/ 带上括号,exec和match默认捕获括号值(match+/g除外)  
		/(?:ab)+/ 非捕获
		/you are (good|nice)} 分支
	2.提取
	 	/(\d{4})-(\d{2})-(\d{2})/.exec("2017-06-12")["2017-06-12", "2017", "06", "12", index: 0, input: "2017-06-12"]
	 		     匹配结果          第一括号   第二	 第三    匹配序号	输入文本
	 	-----------------------------------------------
	 	"2017-06-12".replace(regex, "$2/$3/$1")"06/12/2017"
	 	-----------------------------------------------
		 RegExp.$1  静态属性可以提取前一个匹配的括号值
	3.反向引用
		 /(d{2})\1/ 
		(1)使用\1匹配必须与第一个括号的值相同
		(2)括号嵌套,以左括号为准开始算
		(3)前面没括号则匹配反向引用字符本身
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值