Javascript—正则表达式(操作指南)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="GB2312">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*var pattern=new RegExp('box','i');
			var str='This is a Box';
			alert(pattern.test(str));//test,RegExp对象的方法。在字符串中测试模式匹配,返回true或false;
			*/
			
			//使用字面量方式的test方法示例
			/*var pattern=/box/i;
			var str='This is a Box';
			alert(pattern.test(str));*/
			
			//alert(/box/i.test('This is a Box'));
			
			/*var pattern=/box/i;//创建正则模式,不区分大小写
			var str='This is a Box';
			alert(pattern.exec(str));*/
			
			//除了test()和exec()方法,String 对象也提供了4 个使用正则表达式的方法。
			// match(pattern) 返回pattern中的子串或null
			// replace(pattern,replacement) 用replacement替换pattern
			// search(pattern) 返回字符串中pattern开始位置
			// split(pattern) 返回字符串按指定pattern拆分的数组
			
//			var pattern=/box/ig;
//			var str='This is a Box!,That is a box too';
//			alert(str.match(pattern));//Box,box
//			alert(str.match(pattern).length);//2
			
//			alert(str.search(pattern));//因为search方法查找到即返回,也就是说无需g全局
			
//			alert(str.replace(pattern,"Cup"));
			
//			alert(str.split(pattern));  //使用split拆分字符串数组
			
			
			//RegExp对象的静态属性
			/*var pattern=/(g)oogle/;
			var str='This is google!';
			pattern.test(str);
			alert(RegExp.input);//当前被匹配的字符串
			alert(RegExp.leftContext);//最后一次匹配前的子串
			alert(RegExp.rightContext);//在上次匹配之后的子串
			alert(RegExp.lastMatch);//最后一个匹配字符串
			alert(RegExp.lastParen);//最后一对园括号内的匹配的子串
			alert(RegExp.multiline);//用于指定是否所有的表达式都用于多行的布尔值
			*/
			
			//RegExp对象的实例属性
		/*	var pattern=/google/ig;
			alert(pattern.global);//Boolean值,表示g是否已设置
			alert(pattern.ignoreCase);//Boolean值,表示i是否已设置
			alert(pattern.multiline);//Boolean值,表示m是否已设置
			alert(pattern.lastIndex);//整数,代表下次匹配将从哪里字符位置开始
			alert(pattern.source);//正则表达式的源字符串形式
			*/
			
			/*var pattern=/google/g;
			var str='google google google';
			pattern.test(str);
			alert(pattern.lastIndex);
			*/
			/*
//			使用点元字符
			var pattern=/g..gle/;//.匹配一个任意字符
			var str='google';
			alert(pattern.test(str));
			
			//重复匹配
			var pattern=/g.*gle/; //.匹配0个或多个
			var str='google';
			alert(pattern.test(str));
			
			
			//使用字符类匹配
			var pattern=/g[a-zA-Z]*gle/; //[a-z]*表示任意个a-z中的字符
			var str='google';
			alert(pattern.test(str));
			
			var pattern=/g[^0-9]*gle/;//表示任意个非0-9的字符
			var str='google';
			alert(pattern.test(str));
			
			var pattern=/[a-z][A-Z]+/; //[A-Z]+表示A-Z一次或多次
			var str='gOOGLE';
			alert(pattern.test(str));
*/			
		/*	//使用元符号匹配
			var pattern=/g\w*gle/;  // \w*匹配任意多个所有字母数字
			var str='google';
			alert(pattern.test(str));
			
			var pattern=/google\d; // \d*匹配任意多个数字
			var str='google123';
			alert(pattern.test(str));
			
			var pattern=/\D{7,}/;   // \D{7,} 匹配至少7个非数字
		//	var pattern=new RegExp('\D{7,}');
			var str='googleabc'; 
			alert(pattern.test(str)); 
			
			*/
			
			/*
			//使用锚元字符匹配
			var pattern=/^google$/;//^从开头匹配,$从结尾开始匹配
			var str='google';
			alert(pattern.test(str));
			
			var pattern=/goo\sgle/;	//\s可以匹配到空格
			var str='goo gle';
			alert(pattern.test(str));
			
			var pattern=/google\b/;  //\b可以匹配是否到了边界
			var str='google() a';
			alert(pattern.test(str));
			
			*/
			
			/*
			//使用或模式匹配
			var pattern=/google|baidu|bing/;
			var str='google';
			alert(pattern.test(str));
			*/
			
			/*//使用分组模式匹配
			var pattern=/(google){4,8}/;//匹配分组里的字符串4-8次
			var str='googlegoogle';
			alert(pattern.test(str));
			
			var pattern=/8(.*)8/; //获取8..8之间的任意字符
			var str='This is 8google8';
			str.match(pattern);
			alert(RegExp.$1);//得到第一个分组里的字符串内容
			
			var pattern=/8(.*)8/;
			var str='This is 8google8';
			var result=str.replace(pattern,'<strong>$1</strong>');//得到替换的字符串输出
			document.write(result);
			
			
			
			var pattern=/(.*)\s(.*)/;
			var str='google baidu';
			var result=str.replace(pattern,'$2 $1');//将两个分组的值替换输出
			document.write(result);
			*/
			
			
			//关于贪婪和惰性
			
		/*	var pattern=/[a-z]+?/;	//?号关闭了贪婪匹配,只替换了第一个
			var str='abcdefjhijklmnopqrstuvwxyz';
			var result=str.replace(pattern,'brozer');
			alert(result);
			
			var pattern=/8(.+?)8/g;	//禁止了贪婪,开启了全局
			var str='This is 8google8,That is 8google8,There is 8google8';
			var result=str.replace(pattern,'<strong>$1</strong>');
			document.write(result);
			
			var pattern=/8([^8]*)8/g;  //另一种禁止贪婪
			var str='This is 8google8,That is 8google8,There is 8google8';
			var result=str.replace(pattern,'<strong>$1</strong>');
			document.write(result);
			
			*/
			
			
			/*
			//使用exec返回数组
			
			var pattern=/^[a-z]+\s[0-9]{4}$/;
			var str='google 2012';
			alert(pattern.exec(str));  //返回整个字符串
			
			var pattern=/^[a-z]+/i; //只匹配字母
			var str='google 2012';
			alert(pattern.exec(str));
			
			var pattern=/^([a-z]+)\s([0-9]{4})$/i;
			var str='google 2012';
			alert(pattern.exec(str)[0]);
			alert(pattern.exec(str)[1]);
			alert(pattern.exec(str)[2]);
			*/
			
			/*//捕获性分组和非捕获性分组
			var pattern=/(\d+)([a-z])/;
			var str='123abc';
			alert(pattern.exec(str)); 
			
			
			var pattern2=/(\d+)(?:[a-z])/;
			var str2='123abc';
			alert(pattern.exec(str2));
			
			var pattern3=/(A?(B?(C?)))/;
			var str3='ABC';
			alert(pattern3.exec(str3));
			
			*/
			
			
			//常用的正则
			
			/*//1检查邮政编码
			var pattern=/[1-9][0-9]{5}/;
			var str='362411';
			alert(pattern.test(str));
			*/
			
			/*
			//2检查文件压缩包
			var pattern=/\w+\.zip|rar|iso|gz/;  //特殊字符,用\符号转义即可
			var str='123.zip';
			alert(pattern.test(str));
			*/
			/*
			//3 删除多余空格
			
			var pattern=/\s/g;
			var str='111 222 333';
			var result=str.replace(pattern,'');
			alert(result);
			*/
			
			
			/*//4删除首尾空格
			var pattern=/^\s+|\s+$/g;
			var str='                                                    goo   gle                            ';
			var result=str.replace(pattern,'');
			alert(str);
			alert('|'+result+'|');
			*/
			 
		/*	var pattern=/^\s+/;
			var str='   goo   gle    ';
			var result=str.replace(pattern,'');
			pattern=/\s+$/;
			result=result.replace(pattern,'');
			alert('|'+result+'|');
			*/
			
			
			
			
						 
			
			
		</script>
	</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

月夜归醉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值