正则表达式1

正则表达式

定义

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

建立正则表达式

创建正则表达式有两种方法。

  1. 采用 new 运算符。

    var box=new RegExp('box');
    alert(box);

正则表达式1_第1张图片

正则表达式1_第2张图片

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

var box=new RegExp('box','gi');
alert(box);         

正则表达式1_第3张图片

正则表达式1_第4张图片

其中的 'g'和'i' 分别表示全局匹配和忽略大小写,还有一个 'm' 表示多行匹配
正则表达式1_第5张图片

其中 'box' 是属于必须传的参数,是匹配的对象参数。

  1. 采用字面量的方法。
    字面量的方法就是在前面打印出来的 /box/ 就是。

    var box=/box/ig;
    alert(box);

正则表达式1_第6张图片

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

测试正则表达式

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

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

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

  1. test 方法

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

var box=new RegExp('xiancai','i');     
var str='this is xianCai,Xiancai是我的名字.';       
alert(box.test(str));      

正则表达式1_第7张图片

正则表达式1_第8张图片

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

var box=new RegExp('xiancai');     
var str='this is xianCai,Xiancai是我的名字.';       
alert(box.test(str));      

正则表达式1_第9张图片

正则表达式1_第10张图片

具体的看图。

  1. exec 返回匹配数组
    这个 exec 方法我们采用字面量的方法。

    var pattern=/xiancai/g;
    var str='咸菜 is a breakfast,xiancai is a name';
    alert(str.exec(str));

正则表达式1_第11张图片

正则表达式1_第12张图片

没有 'i' 他就匹配一个 'xiancai',后面的 'Xiancai',就不会匹配了。然后用 typeof 来看看他返回的是什么。
正则表达式1_第13张图片

var pattern=/xiancai/g;      
var str='咸菜 is a breakfast,xiancai is a name';             
alert(typeof str.exec(str));          
正则表达式1_第14张图片
var pattern=/xiancai/; //没有 “i或者g”     
var str='咸菜 is a breakfast,xiancai is a name';             
alert(str.exec(str));          

正则表达式1_第15张图片

正则表达式1_第16张图片

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

你可能感兴趣的:(正则表达式1)