html 正则表达式

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>testjs.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript">
//返回true或者false的匹配方式
function zzpp(){
	//test方法,测试字符串,符合模式时返回true,否则返回false 
	var re = /he/;//最简单的正则表达式,将匹配he这个单词  re = /^he$/i; re=/^[a-z]/i; re = /\s/;
	var str = "he"; 
	alert(re.test(str));//false  
}

//获取匹配的结果
function ppjg(){
	var osVersion = "Ubuntu 8";//其中的8表示系统主版本号 
	//另一个方法exec,返回一个数组,数组的第一个元素为完整的匹配内容  
	re=/^[a-z]+\s+\d+$/i; //+号表示字符至少要出现1次,\s表示空白字符,\d表示一个数字 
	arr = re.exec(osVersion); 
	alert(arr[0]);//将osVersion完整输出,因为整个字符串刚好匹配re 
	//我只需要取出数字 
	re=/\d+/; 
	var arr = re.exec(osVersion); 
	alert(arr[0]);//8 
}

//子匹配
function zpp(){
    //exec返回的数组第1到n元素中包含的是匹配中出现的任意一个子匹配 
	
	re=/^[a-z]+\s+(\d+)$/i;//用()来创建子匹配 
	arr =re.exec(osVersion); 
	alert(arr[0]);//整个osVersion,也就是正则表达式的完整匹配 
	alert(arr[1]);//8,第一个子匹配,事实也可以这样取出主版本号 
	alert(arr.length);//2 
	osVersion = "Ubuntu 8.10";//取出主版本号和次版本号 
	re = /^[a-z]+\s+(\d+)\.(\d+)$/i;//.是正则表达式元字符之一,若要用它的字面意义须转义 
	arr = re.exec(osVersion); 
	alert(arr[0]);//完整的osVersion 
	alert(arr[1]);//8 
	alert(arr[2]);//10 
}

//replace  split search
function ppff(){
	 //replace方法,用于替换字符串 
	var str ="some money"; 
	alert(str.replace("some","much"));//much money 
	//replace的第一个参数可以为正则表达式 
	var re = /\s/;//空白字符 
	alert(str.replace(re,"%"));//some%money 
	//在不知道字符串中有多少空白字符时,正则表达式极为方便 
	str ="some some \tsome\t\f"; 
	re = /\s+/; 
	alert(str.replace(re,"#"));//但这样只会将第一次出现的一堆空白字符替换掉 
	//因为一个正则表达式只能进行一次匹配,\s+匹配了第一个空格后就退出了 
	re = /\s+/g;//g,全局标志,将使正则表达式匹配整个字符串 
	alert(str.replace(re,"@"));//some@some@some@ 
	var str = "ADF9DF9DF9", //那个文本文件中的字符串; 
	re = /9/gi, //匹配9 
	counter = 0; //计数器 var newstr = 
	str = str.replace(re, function() { 
	counter++; //每出现一次匹配,函数就被执行一次,函数的返回值用来替换原值 
	return "#"; 
	}); 
	alert("替换次数: "+counter); 
	//alert(str); 
	//最后str 变成 ADF#DF#DF#" 
	var str = "他今年22岁,她今年20岁,他的爸爸今年45岁,她的爸爸今年44岁,一共有4人" 
	function test($1) { 
	var gyear = (new Date()).getYear() - parseInt($1) + 1; 
	return $1 + "(" + gyear + "年出生)"; 
	} 
	// var reg = new RegExp("(http://www.cnblogs.com/sgivee/admin/file://d/+)岁", "g"); 
	var reg = /(\d+)岁/gi; 
	var newstr = str.replace(reg, test); 
	//alert(str); 
	//alert(newstr); 
	//另一个与之相似的是split 
	var str = "a-bd-c"; 
	var arr = str.split("-");//返回["a","bd","c"] 
	//如果str是用户输入的,他可能输入a-bd-c也可能输入a bd c或a_bd_c,但不会是abdc(这样就说他输错了) 
	str = "a_db-c";//用户以他喜欢的方式加分隔符s 
	re=/[^a-z]/i;//前面我们说^表示字符开始,但在[]里它表示一个负字符集 
	//匹配任何不在指定范围内的任意字符,这里将匹配除字母处的所有字符 
	arr = str.split(re);//仍返回["a","bd","c"]; 
	//在字符串中查找时我们常用indexOf,与之对应用于正则查找的方法是search 
	str = "My age is 18.Golden age!";//年龄不是一定的,我们用indexOf不能查找它的位置 
	re = /\d+/; 
	alert(str.search(re));//返回查找到的字符串开始下标10 
	//注意,因为查找本身就是出现第一次就立即返回,所以无需在search时使用g标志 
	//下面的代码虽然不出错,但g标志是多余的 
	re=/\d+/g; 
	alert(str.search(re));//仍然是10  
}

function exc(){
	var str = "My name is CJ.Hello everyone!"; 
	var re = /[A-Z]/;//匹配所有大写字母 
	var arr = str.match(re);//返回数组 
	alert(arr);//数组中只会包含一个M,因为我们没有使用全局匹配 
	re = /[A-Z]/g; 
	arr = str.match(re); 
	alert(arr);//M,C,J,H 
	//从字符串中抽取单词 
	re = /\b[a-z]*\b/gi;//\b表示单词边界 
	str = "one two three four"; 
	alert(str.match(re));//one,two,three,four  
}

function other(){
    var re = /[A-Z]/; 
	//exec方法执行后,修改了re的lastIndex属性, 
	var str = "Hello,World!!!"; 
	var arr = re.exec(str); 
	alert(re.lastIndex);//0,因为没有设置全局标志 
	re = /[A-Z]/g; 
	arr = re.exec(str); 
	alert(re.lastIndex);//1 
	arr = re.exec(str); 
	alert(re.lastIndex);//7 
}
</script>
  </head>
  
  <body οnlοad="other()">
  
  </body>
</html>

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值