欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS正则表达式的创建方式及使用讲解

程序员文章站 2023-12-31 15:27:16
一、正则表达式的创建方式 方式1:/正则表达式/模式 重点掌握 var regx=/[a-z]/; var regx=/^[a-z]$/; var regx=/^[a-z0-9]+...

一、正则表达式的创建方式

方式1:/正则表达式/模式 重点掌握

 var regx=/[a-z]/;
		var regx=/^[a-z]$/;
		var regx=/^[a-z0-9]+$/i;
		var regx=/^[a-z]{3}$/i;
		var regx=/\b[a-z]{3}\b/g;
		var regx=/\b[a-z]{3}\b/ig;

注意:不需要双引号括起来;两种模式(i--忽略大小写模式、g--全局模式)

方式2:new regexp("正则表达式",模式); 了解即可

var regx=new regexp("[a-z]","i");

二、正则表达式对象常用的方法

2.1test()

功能:使用正则对象去匹配字符串 ,如果匹配成功返回ture,否则返回false。

例1 需求:匹配一个字符

var regx=/[a-z]/;//定义规则(不用用双引号括起来)(1)
//		var regx=/^[a-z]$/;//定义规则(不用用双引号括起来)(2)
//		var regx=/^[a-z0-9]+$/i;//定义规则(不用用双引号括起来)(3)
//		var regx=/^[a-z]{3}$/i;//定义规则(不用用双引号括起来)(4)
//		var regx=/\b[a-z]{3}\b/g;//定义规则(不用用双引号括起来)(5)
//		var regx=/\b[a-z]{3}\b/ig;//定义规则(不用用双引号括起来)(6)
		var st="hello123 ni hao ma ";//待测数据
		var result=regx.test(st);//校验
		alert(result);//true
//		分析:它会在字符串内找,找到符合规则的,就会结束.
//		解决办法:添加(),此时才是佩服一个英文小写字符
//              练习:不区分大小写--+(0个或多个){4}(匹配四个字符)

说明:在(1)的测试结果是true,分析原因:由于没有边界符,当匹配到的时候就会立即返回,同时返回true,如果不匹配就继续

向下查询,如果查找最后,没有查询到则返回false。

解决思路:采用(2)的方式进行匹配,此时才是匹配一个小写的字符(判断要匹配的内容是否是以小写字符开头的字符)

补充:其它方式(3)、(4)、(5)、(6)注意分析结果

2.2 exec()

功能:根据正则表达式去查找字符串符合规则的字符串(内容)

例2 需求:查找符合要求的单词

//			var regex=/\b[a-z]{3}\b/; //(1)
			var regex=/\b[a-z]{3}\b/g;//(2)
			var str = "da jia hao ming tian xiu xi yi tian gao xing bu";
			var line=null;
			while((line=regex.exec(str))!=null){
				document.write(line+"
");
			}

分析:(1)的使用会使程序陷入死循环,由于不是全局查询,它查询到了(此时不是null了)就停止查询了,不再向下查询,永远都

是jia。

解决办法:采用(2)加上全局参数g,查询到了输出,然后会接着往下查询,直到最后没有相匹配的,则是null。

三、字符串中关于正则表达式的方法

(1)match 找到一个或多个正则表达式的匹配;返回的是匹配的值,而不是字符串的位置

(2)replace 替换与正则表达式匹配的子串

(3)split 把字符串分割为字符串数组

//(1)功能--查找:找到一个或多个正则表达式的匹配(只要匹配到就返回)
			var s="abgdg".match(/[a-z]+/);//注意参数
			alert(s);
			//(2)功能--替换:替换与正则表达式匹配的子串(这里特殊之处是去掉字符串中的数字)
			var s2="ab123ddddd456cccc".replace(/[0-9]+/g,"");//注意参数
			alert(s2);
			//(3)功能--分割:把字符串分割为字符串数组
			var s3="a=b=c".split("=");//注意参数
			alert(s3);
			alert(s3.length);

四、简单应用

var str = "hello123";
	var reg = /^[a-z0-9]+$/i;  //注意加上^和$(开头和结尾)
	alert("匹配吗?"+reg.test(str));	

需求:查找出三个字符组成的单词

var str  ="da jia hao hao xue xi a";
	var reg = /\b[a-z]{3}\b/gi;//注意全文查找加上 g,\b表示一个单词的边界
	var line ="";
	while((line = reg.exec(str))!=null){
		document.write(line+"
")
	}
	

上一篇:

下一篇: