javascript学习-正则

RegExp对象

RegExp对象表示正则表达式,它是对字符串执行模式匹配的强大工具。

直接字面量语法

/pattern/attributes

例子:

           var reg=/hello/i;//匹配hello,加了i忽视大小写
			var str="helloword"
			var result=str.match(reg);
			console.log(reg)
			console.log(result)
			var result2=reg.exec(str)      
			 console.log(result2)
			 var result3=reg.test(str);//返回true/false
			  console.log(result3)

结果:
在这里插入图片描述

创建 RegExp 对象(构造函数)

使用构造函数。使用是一样的

 var reg1=new RegExp("hahaha","i");
  console.log([reg1]);

RegExp 对象属性

在这里插入图片描述

RegExp 对象方法

在这里插入图片描述

支持正则表达式的 String 对象的方法

在这里插入图片描述
例子:

            var str="hahabc abc hah okk Abc lem abc"
			var reg=/abc/ig;//全局查找,忽视大小写
			
			var result1=str.search(reg);
			console.log(result1)
			
			var result2=str.match(reg);
			console.log(result2)
			
			var result3=str.replace(reg,"xyz");
			console.log(result3)
			
			var result4=str.split(reg);
			console.log(result4)

结果:
在这里插入图片描述

参数

参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数 attributes 是一个可选的字符串,包含属性 “g”、“i” 和 “m”,分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

正则的规则

方括号

在这里插入图片描述
例如:【注】^$意思是开头结尾限定

			 //第一个字母为axb中任意一个字符。
			 var reg1=new RegExp("[axb]hahaha","i");
			 var res=reg1.test("xhahaha")//结果为true
			 //第一个字母不能是axb
			  var reg2=new RegExp("[^axb]hahaha","i");
			  var res=reg2.test("xhahaha")//结果为false
			  //[0-9]	查找任何从0至 9 的数字
			  var reg3=new RegExp("^[0-9]ha$","i");
			  var res=reg3.test("1ha")//结果为true
			   //(red|blue|green)	查找任何指定的选项。
			   var reg4=/red|blue|green/
			   var res=reg3.test("green")//结果为true

元字符

在这里插入图片描述
\w 匹配字母或数字或下划线或汉字 等价于 ‘[^A-Za-z0-9_]’。
\W 匹配特殊字符,即非字母、非数字、非汉字、非_

例子:

            var reg=/^.$/
			var res=reg.test("a")//任意字符为true
			// 匹配字母或数字或下划线或汉字
			var reg1=/^\w$/
			var reg2=/^[A-z]$/
			
			//匹配数字
			var reg3=/^\d$/
			
			//匹配单词边界
			var reg3=/abc\b/
			var res1=reg3.exec("okabcok")//结果为null
			var res2=reg3.exec("ok,abc,ok")//结果为["abc", index: 3, input: "ok,abc,ok", groups: undefined]

量词

在这里插入图片描述
例子:

 //11位数字
		   var reg=/^\d{11}&/
		   //至少有一个c,abc、abcc、abccc合法
		   var reg=/^abc+&/
		   //0个或多个c
		   var reg=/^abc*&/
		   //零个或一个c
		   var reg=/^abc?&/
		   //qq号码,6位到12位
		   var reg=/^\d{6,12}&/
		   var res=reg.test("12345")//false
		   //6位以上
		   var reg=/^\d{6,}&/
		   //等等

参考网址:https://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

声明量词

           var str="omg abc okk abc haha"
			//正向肯定模式
			//匹配的是abc前面的多于一个字母和一个空格的字符串
			var reg=/\w+\s(?=abc)/g
			var result=str.match(reg)//结果:["omg ", "okk "]
			console.log(result)
			
			//正向否定模式
			var reg1=/\w+\s(?!abc)/g
			var result1=str.match(reg1)//结果:["abc ", "abc "]
			console.log(result1)
			
			//反向肯定预查
			var reg2=/(?<=abc)\s\w+/g
			var result2=str.match(reg2)//结果:[" okk", " haha"]
			console.log(result2)
			
			//反向否定模式
			var reg3=/(?<!abc)\s\w+/g
			var result3=str.match(reg3)//结果:[" abc", " abc"]
			console.log(result3)

正则组

		<script type="text/javascript">
			var str='<a href="http://baidu.com">百度</a>';
			var reg=/<a href="(.*?)">(.*?)<\/a>/    //()里是子匹配
			
			var result=str.match(reg)
			console.log(result)
			
			
			var reg1=/<a href="(?<url>.*?)">(?<content>.*?)<\/a>/    //子匹配命名
			var result1=str.match(reg1)
			console.log(result1)
			console.log(result1.groups.url)
		</script>

结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值