正则表达式

定义

正则表达式(regular expression)是一个描述字符模式的对象.ECMAScript 的 RegExp 类表示正则表达式,而String 和 RegExp 都定义了使用正则表达式的进行强大的模式匹配和文本检索与替换的函数。正则表达式主要用来验证客户端的输入数据。用户填写完表单,单击按钮之后,表单就会被发送到服务器,在服务器端通常会用PHP、ASP.NET等服务器脚本对其进行进一步处理。因为客户端验证,可以节约大量的服务器端的系统资源,并且提供更好的用户体验,所在提交到服务器处理之前可以在客户端使用正则表达式进行验证。

建立正则表达式

创建正则表达式有两种方法。
1. 采用 new 运算符。



最后打印出来的 /box/ 是正则的字面量表达方式,上面的代码中没有加入全局变量 “g” 匹配。下面的会加入 “g” 匹配。



其中的 ‘g’和’i’ 分别表示全局匹配和忽略大小写,还有一个 ‘m’ 表示多行匹配

其中 ‘box’ 是属于必须传的参数,是匹配的对象参数。
2. 采用字面量的方法。
字面量的方法就是在前面打印出来的 /box/ 就是。


其中 “var box=/box/ig;” 中的 “i,g”必须放在反斜杠的后面。
这就是字面量的建立方法,一般用的最多的就是字面量表达方法。

测试正则表达式

RegExp对象包含两个方法:test()和exec(),功能基本相似,用于测试字符串匹配。

test()方法在字符串中查找是否存在指定的正则表达式并返回布尔值,如果存在则返回true,不存在则返回false。

exec()方法也用于在字符串中查找指定正则表达式,如果exec()方法执行成功,则返回包含该查找字符串的相关信息数组。如果执行失败,则返回null。

  1. test 方法

这个 test 方法我们采用 new 运算符。



可以看到返回的是 true 说明是正确的。如果把 ‘i’ 去掉,那么结果是什么呢??



具体的看图。
2. exec 返回匹配数组
这个 exec 方法我们采用字面量的方法。



没有 ‘i’ 他就匹配一个 ‘xiancai’,后面的 ‘Xiancai’,就不会匹配了。然后用 typeof 来看看他返回的是什么。



从上图看的到有的话他返回的是数组的值,如果没有那就返回 null 。

发表评论

电子邮件地址不会被公开。 必填项已用*标注