js之正则表达式(1)笔记

正则表达式
而JS中的RegExp类就是用来表达正则表达式。

用途:就是把能在前端干的事尽量在前端解决掉,而不浪费服务器的资源。

 //对于正则表达式来说,无论采用哪一种那个申明方式,其返回的永远是其对应的字面量表示法
 //var box = new RegExp('box','ig');      // 构造函数表示法   包含两个参数,第二个参数是可选的  即模式修饰符 i忽略大小写   g全局匹配   m多行匹配
// alert(box);
// var box2=/box1/ig;							//字面量正则
// alert(box2);
 
// 测试正则表达式
 //test()     查找字符串,查找成功则返回true,否则返回false      exe()  返回一个查找字符串的数组,空则返回null
/* 
 var pattern=/box/ig;
 var str='Box';
 alert(pattern.test(str));
 
 
 alert(/box/ig.test('Box'));			//一句话匹配
 
 
 
 
var pattern =/Box/ig;				// 对于正则表达式来说,用test(),exec()函数是来检测str字符串中是否包含pattern表达式
var str='This is a Box';
alert(pattern.test(str)); 

 
var pattern =/Box/
var str = 'This is a Box';
alert(pattern.exec(str));     //返回搜索到的字符串的数组
/* 



//字符串的正则表达式方法

//match(pattren)   返回pattren中的子串      repalce(pattren ,repalcement);  		用replacement来替换pattern
//search(pattern)		返回字符串pattern中的起始位置			split(pattern);		返回字符串按指定pattern拆分的数组
/*
var pattern =/Box/g;		//match(pattren)   返回包含pattern的数组,注:g返回包含多个pattern的数组
var str='This is a Box? That is a Box';
alert(str.match(pattern));

var pattern =/Box/g;				//replace(pattern,replacement);   用replacement来替换pattern,带有返回值,返回替换后的字符串		
var str='This is a Box? That is a Box';
var a=str.replace(pattern,'exe');
alert(a);


var pattern =/Box/g;		//返回str中pattern的初始位置,查找即返回,g对其无用,找不到返回-1
var str='This is a Box? That is a Box';
alert(str.search(pattern));

var pattern =/Box/g;			//split(pattern)  将pattern来划分字符串,将字符串拆分为数组		
var str='This is a Box? That is a Box';
alert(str.split(' '));
*/


//正则表达式的静态属性和实例属性(创建实例后才可以使用)
//静态属性
/*
var pattern =/google/ig;
var str ='This is a google ?';
pattern.test(str);			//必须要先执行依一下,静态属性才可以生效
alert(RegExp.input);		//所匹配的正则表达式
alert(RegExp.leftContext);	//匹配正则表达式的左子串
alert(RegExp.rightContext); //匹配正则表达式的右子串
alert(RegExp.lastMatch);    //最后一个匹配到的字符串
alert(RegExp.lastParen);    //最后一对圆括号里匹配到的字符串
注:静态属性可以用短名来匹配


//实例属性,用来检查其某些属性是否生效
var pattern=/Box/ig;
alert(pattern.global)		//判断是否支持全局
alert(pattern.ignoreCase);	//判断是否支持忽略大小写
alert(pattern.multiline);	//判断是否支持换行
alert(pattern.source);		//匹配的原字符串

var str='Box Box Box Box';
pattern.test(str);				
pattern.lastIndex=100;
alert(pattern.lastIndex);	//	用来返回上一次所匹配到的位置,并且可以手动赋值 注:不兼容
*/	


//获取控制,元字符和元符号

var pattern=/Bo../ig;		// .可以表示除换行以外的其他字符
var str='this is a boox';
alert(pattern.test(str));		//true


var pattern=/Bo*x/ig;		// x*表示可以匹配0,1,或多个x
var str='this is a boox';
alert(pattern.test(str));		//true



var pattern=/Bo+x/ig;		// x+可以匹配至少一个x
var str='this is a bx';
alert(pattern.test(str));		//false


var pattern=/Bo?x/ig;		// x?可以表示0个或1个
var str='this is a boox';
alert(pattern.test(str));		//false


var pattern=/Bo{0,5}x/ig;		// x{m,n}表示至少匹配m~n个x      x{m}表示只能m次     x{m,}表示大于m次    x{,n}表示要小于n次
var str='this is a boooox';
alert(pattern.test(str));		//true



var pattern=/B[a-z]*x/ig;		// [a-z]表示26个小写字母都可以任意匹配,也可以多个组合使用
var str='this is a boox';
alert(pattern.test(str));		//true

注:^表示从头来开始匹配      $表示从尾开始匹配				同时使用表示要和正则完全相同

  

var pattern=/Bo[0-9a-z]x/ig;		//多个匹配的组合
var str='this is a bo1x';
alert(pattern.test(str));		//true

var pattern=/Bo[^0-9a-z]x/ig;		//括号中加^,表示除括号内的其他字符
var str='this is a bo1x';
alert(pattern.test(str));		//false


还有一些特殊的元字符: \w 表示可以匹配大小写字母和数字及_         \W与\w相反
						\d表示任意的数字             \D 表示非数字
						


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值