正则表达式

24 篇文章 0 订阅

什么是正则表达式:正则表达式从数据类型来讲是一个对象。不能操作DOM的

作用:配合API来验证字符串(.test(),.match())等;
.test()的用法:正则表达式.test(参数);返回的是Boolean
.match()的用法:字符串.match(正则表达式);返回的是数组

怎么定义正则表达式呢?有两种方法:

  1. test()
let s = "456你好789";
			let a = /\d+/g;
			console.log(a.test(s));//打印的是true
  1. RegExp()
let y = "你好";
			let x = new RegExp(y);
			console.log(x.test("456你好789"));//打印的是true

正则表达式转义符号的运用

  1. 转义符号转义有特殊意义的符号会变得没有意义(/);
let s = "/";
			let a = /\//;
			console.log(a.test(s));//true
  1. 转义符号转义没有字母会变得有意义
    a. \d(匹配数字),\D(匹配非数字)
			let s = "4";
			let a = /\d/;
			console.log(a.test(s));//true
			
			let x = "4";
			let y = /\D/;
			console.log(y.test(x));//false

b. \s(匹配空格),\S(非空格)

			let s = " ";
			let a = /\s/;
			console.log(a.test(s));//true
			
			let x = " ";
			let y = /\S/;
			console.log(y.test(x));	//false

c. \w(匹配数字,字母,下划线),\W(非数字,字母,下划线)

			let s = "4";
			let a = /\w/;
			console.log(a.test(s));//true
			
			let x = "_a";
			let y = /\W/;
			console.log(y.test(x));//false

d. \b(匹配连字符)汉字没用

				let s = "I am afei";
				let a = /\bafei\b/;
				console.log(a.test(s));//true
				
				let x = "I am afeif";
				let y = /\bafei\b/;
				console.log(y.test(x));//false

正则表达式字符集的作用**[]**

					let s = "abcgwgwagcasg";
					let a = /[abc]/g;//在全局里找abc
					console.log(s.match(a));//(6) ["a", "b", "c", "a", "c", "a"]

正则表达式或者的作用**|**

					let s = "fwegwgsa";
					let a = /e|w|f/g;
					console.log(s.match(a))//(4) ["f", "w", "e", "w"]

字符集里的区间**-**

					let s = "gehe4613GEd78GSEv";
					let a = /[a-zA-Z]/g;//匹配所有的字母
					console.log(s.match(a))//(11) ["g", "e", "h", "e", "G", "E", "d", "G", "S", "E", "v"]

字符集里的**^**的作用

					let s = "gwgyhwagaghvahchhb";
					let a = /[^abc]/g;//除了abc之外全都匹配
					console.log(s.match(a));//(13) ["g", "w", "g", "y", "h", "w", "g", "g", "h", "v", "h", "h", "h"]

起始位置的符号^和结束位置的符号$的作用

					let s = "abcg";
					let a = /^abc/g;//以a为开始
					console.log(s.match(a));//["abc"]	
					
					let s = "abc";
					let a = /abc$/g;//以c为结束的
					console.log(s.match(a));//["abc"]	
					
					let s = "agabccgc";
					let a = /^abc$/g;//这里只能匹配abc
					console.log(s.match(a));//null	

**.**在正则表达式里的作用:匹配任意字符,除了换行之外;放在[.]里就是单纯的点

						let s = "58gs\ng\t";
						let reg = /./g;
						console.log(s.match(reg));//(6) ["5", "8", "g", "s", "g", "	"]

replace();替换内容。用法:str.replace(正则,参数[要替换的内容,可以写字符串和函数])

						let reg = /你好/g;
						let str = "世界真的很大,遇见你真的很幸运,初次见面,你好请多多指教";
						let strReg = str.replace(reg,"hello");
						console.log(strReg);//世界真的很大,遇见你真的很幸运,初次见面,hello请多多指教
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旭陌小生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值