正则表达式
而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 表示非数字
js之正则表达式(1)笔记
最新推荐文章于 2024-08-06 11:38:24 发布