RegExp(正则)

		/*
		 * RegExp(Regular Expression):
		 * 按照某个规则去匹配符合条件发字符串,这个就叫正则表达式
		 * 
		 * 定义正则表达式:
		 * 通过构造函数 var reg = new RegExp("e","ig");
		 * 通过直接量 var reg = /pattern/flag
		 * pattern 正则表达式
		 * flag 标识(修饰符)
		 * 修饰符主要有i,g,m,
		 * i--忽略大小写
		 * g -- 全局查找,应用于所有字符串,不是在查找到第一个匹配字符就停止
		 * m -- 多行匹配,查找到一行文本的结束还是继续往下一行去查找
		 */
		var str = "ABAasdfjkljasaf";
		var reg = /a/i;//查找a,忽略大小写
		console.log(str.match(reg));
		console.log(reg.exec(str));
		var reg01 = /a/ig;//全局查找a,忽略大小写
		do{
			var result = reg01.exec(str);
			console.log(result);
		}while (result != null);
		
		var str02 = "skjkaljfasjdflsfjlaskflsf";
		console.log(str02);
		var reg02 = /j/ig;
		do{
			var resule = reg02.exec(str02);
			console.log(result);
		}while(result != null);
		
		//[] 用于查找某个范围的字符,比如[abc]表示查找[]之间的任意字符
		var str03 = "ahkn123";
		var reg03 = /[abc]/;//只要匹配上abc中的任意一个就行
		console.log(reg02.test(str03));//true
		var reg04 = /[0-9]/;//查找范围,[n-m]查找n到m之间的任意一个,包括n和m
		console.log(reg04.exec(str03));
		var reg05 = /[4-7]/;//超出范围
		console.log(reg05.test(str03));//false
		//[a-z]表示从小写字母a到z,[A-Z]表示从大写字母a到z,[0-9]表示数组0到9
		//[a-Z]表示从小写字母a到大写字母Z的所有大小写字母
		
		//[^]查找任意不在[]之内的字符,只要有[]内规定的字符以外的字符存在,就能查到
		var reg06 = /[^abc]/;
		console.log(reg06.test(str03));//true
		
		//()分组 查找()内指定的选项,有一项满足就可以返回
		var color = "pink green yellow skyblue gray";
		var reg07 =/(pink|gray|skyblue)/g;
		console.log(reg07.exec(color));
		do{
			var res = reg07.exec(color);
			console.log(res);
		}while(res != null);
		
		//元字符(有特殊含义的字符)
		/*
		 * .用于查找单个字符,不识别换行\n
		 * \w用于查找单词字符
		 * \W用于查找非单词字符
		 * \d用于查找数字
		 * \D用于查找非数字
		 * \s用于查找空格
		 * \S用于查找非空格
		 * \b用于匹配单词边界 (单词前后是不会和另一个单词直接相连的)
		 * \B匹配非单词边界
		 */
		var str = "This is Web_16 group 123!加油";
		var reg = /g...p/i;//点 . 代表任意字符, w个b相当于起始位置和结束位置
		console.log(reg.exec(str));
		
		var reg01 = /\w/g;//\w用于查找单词,返回的是所有单词的单个字母,识别数字和下划线
		do{
			var res = reg01.exec(str);
			console.log(res);
		}while (res != null);
		
		var reg02 = /\W/g;//\W用于查找单词,包括特殊符号,中文等
		var result = reg02.exec(str);
		while(result != null){
			console.log(result);
			result = reg02.exec(str);
		}
		
		var reg03 = /\d/g;//用于查找数字
		console.log(str.match(reg03));
		
		var reg04 = /\D/g;//匹配数字以外的所有字符,包括中文,下划线,特殊符号
		console.log(str.match(reg04));
		
		var reg05 = /\s/g;//用于查找空格
		do{
			var res = reg05.exec(str);
			console.log(res);
		}while(res != null);
		
		var  reg06 = /\S/g;//用于查找非空格
		do{
			var res = reg06.exec(str);
			console.log(res);
		}while(res != null);
		
		var reg07 = /\bis\b/g;//b是匹配单词的边界 单词的前后是不会和另一个单词直接相连的
		//如果\b在字符前面,说明单词前面有边界,如果\b在单词后面,说明单词后面 有边界,
		//如果\b出现在字符的开头和结尾,说明单词两边都有边界
		console.log(reg07.exec(str));
		
		var reg08 = /\Bis/g;//\B匹配非单词边界,用法和\b一样
		console.log(reg08.exec(str));
		
		//那str变量中的空格替换掉
		var reg08 = str.replace(reg05,"□");
		console.log(reg08);
		
		//量词
		/*
		 * + /n+/匹配任意多个字符,字符中至少要包含一个n (一个或多个)
		 * * /n* /匹配任意多个字符,字符中包含0个或者多个n
		 * ? /n?/匹配任意包含一个或者0个n的字符串
		 * {n} n必须是数字,s{3}代表匹配有连续3个s的字符
		 * {n,m}n和m必须是数组,s{3,7}代表s至少连续出现3次,最多连续出现7次
		 * {n,}n必须是数字,s{3,}代表至少连续出现3次以上,没有上限
		 * ^ ^[abc]匹配一abc中任意字符开头的字符串
		 * $ a$匹配以a结尾的字符串
		 * ?= ?=n 代表匹配任意字符串后紧跟n的字符串
		 * ?! ?!n 代表匹配任意字符串后面没有紧跟n的字符串
		 */
		var str01 = "Hello World";
		var part = /lo+/g;//+:匹配+前面的字符,至少要包含一个
		do{
			var res = part.exec(str01);
			console.log(res);
		}while(res != null);
		
		var part01 = /l.*/ig;//全局搜索l,包括后面紧挨的o,返回0或者多
		console.log(part01.exec(str01));
//		do{
//			var res = part01.exec(str01)
//			console.log(res);
//		}while(res != null);
		
		var part02 = /llo?/g;//全局搜索l,包括后面紧挨的0个或者1个o
		console.log(str01.match(part02));
		
		var par03 = /o{5}/;//查找连续出现5次的o
		console.log(part03.exec(str01));
		
		var num = "1233453hjahfjasfhlasf";
		var reg_part = /\d{6}/;//查找6个连续的数字
		console.log(reg_par.exec(num));
		
		var reg_part01 = /\D{3,7}/;//查找3到7个连续的非数字
		console.log(reg_part01.exec(num));
		
		var reg_part02 = /\w{7,}/;//查找7个以上的字母,数字,下划线
		console.log(reg_part02.exec(num));
		
		var reg_part03 = /^[123abc]/;//匹配以[]中任意字符开头的字符串,返回字符串首字母
		console.log(reg_part03.exec(num));
		
		var reg_part04 = /[^adfg]$/;//不以[]中的任意字符结尾
		console.log(reg_part04.exec(num));
		
		var str_num = "This is a Pig This Th";
		var reg_part05 = /Th(?=is)/g;//查找后面紧跟is的Th
		do{
			var res = reg_part05.exec(str_num);
			console.log(res);
		}while(res != null);
		
		var reg_part06 = /Th(?!is)/g;//查找后面不紧跟is的Th
		console.log(reg_part06.exec(str_num));
发布了31 篇原创文章 · 获赞 32 · 访问量 1273

猜你喜欢

转载自blog.csdn.net/weixin_45936690/article/details/104552074