JS 中正则表达式的作用
Js 中正则表达式的用途:将提交数据在客户端先一步验证, 减少与数据库的交互次数,提高服务器性
能。
举个例子在客户端提交数据的例子:
假如你要登录某网站、网络游戏等等需要输入用户名信息的小编,系统需要将你的用户名和密码和存在在
数据库中的对比,然后才能决定进入或拒绝。但是一般所有的注册信息都会有一些字符数、字母、空格等特定的限制
要求,而很多用户在输入信息时可能多输入一些字符或数字或空格等小编,这些是肯定错误的。要知道数据库每时每
刻的交互量都特别大,如果有很多不符合注册信息规格的信息不停的请求服务,那么无疑会给数据库增加负荷量。而
正则表达式就是在客户端对提交的信息在格式方面就行第一步验证,如果连格式都不符合,那么就不需要请求数据库
服务了。这无疑大大减少了数据库的负荷。
知识结构导图
实例讲解
1.修饰符可选参数 (I:忽略大小写; g:全局匹配; m :多行匹配)
Var pattern = /Box/;
Var pattern = new RegExp(’Box’);
RegExp对象
2.RegExp对象
对象的两个常用方法Exec()、test()和不常用的一个方法compile。
Exec():在字符串中执行匹配搜索,返回结果数组;
Test():在字符串中匹配,返回ture 或false;
JS 代码:
<span style="font-family:Simsun;font-size:18px;"><html> <body> <script type="text/javascript"> //定义正在表达式 patt1,并且检索“e”字符,范围为忽略大小写(i)和全局匹配(g) var patt1=new RegExp("e","ig"); // 定义自变量字符串 s var s= 'The best things in life are free'; //如果S 里面有e则提示true,反之提示false alert("正则的Test()方法显示: "+patt1.test(s)); //如果S 里面有“e”,返回结果数组。 //document.write(patt1.exec(s)); alert("正则的Exec()方法显示: "+patt1.exec(s)); //将检索内容‘e’,改变成'd' patt1.compile("d"); alert("运用compile()后正则的Test()方法显示: "+patt1.test(s)); </script> </body> </html> </span>
RegExp 的静态属性
短名 |
含义 |
|
Imput |
$_ |
当前被匹配的字符串 |
lastMatch |
$& |
最后一个匹配字符串 |
lastParen |
$+ |
最后一对圆括号内的匹配子串 |
leftContext |
$` |
最后一次匹配前的子串 |
Multiline |
$* |
用于指定是否所有的表达式都用于多行布尔值 |
rightContext |
$’ |
在上次匹配之后的子串 |
RegExp 的实例属性
含义 |
|
Global |
Boolean 值,表示g 是否已经设置; |
IgnoreCase |
Boolean值,表示I 是否英已经设置; |
lastIndex |
整数,代表下次匹配将从那个字符位置开始; |
Multiline |
Boolean值,表示m 是否已经设置; |
Source |
正则表达式的源字符串形式 |
String 对象
含义 |
|
Match() |
返回pattern 中的子串或者null; |
Replace(pattern,replacement) |
用replacement 替换 pattern; |
Search(pattern) |
返回字符串中pattern 开始位置; |
Split(pattern) |
返回字符串按指定pattern 拆分的数组; |
JS 代码:
<span style="font-family:Simsun;font-size:18px;"><html> <body> <script type="text/javascript"> //定义正则,并检索内容为dog,ig全局搜索忽略大小写 var pattern = /dog/ig; //定义字符串str var str = 'This is a dog!,That is a Dog too'; //使用字符串的match方法,将匹配到两个 dog,Dog alert(str.match(pattern)); //match pattern 后获取数组的长度:2 alert(str.match(pattern).length); //查找到返回位置:10,否则返回-1 alert((str.search(pattern))); //将 Box 替换成了 Tom alert(str.replace(pattern,'Cate')); //将空格拆开分组成数组 alert(str.split(pattern)); </script> </body> </html></span>
元字符
关于正则表达式元字符的学习会在下次介绍。
推荐相关博客学习和资料:
ps:在W3C网中,可以直接进行JS代码编辑,随时随刻显示显示内容。
方法:找到网页中显示 ”亲自试一试“的字样,点击进入,就可以直接写入JS 代码,直接查看效果。
总结:
随着对JS的学习,发现JS的正则表达式作用真是太大了,对客户端提交信息可以进行各种样式的格式检验和信
息匹配。