JS学习十二天----正则表达式的模式匹配

来源:互联网 发布:合肥晨飞网络待遇 编辑:程序博客网 时间:2024/05/21 19:04

正则表达式的模式匹配

一说正则表达式,应该不陌生吧,什么是正则表达式呢?就是一床能表示其他字符串的字符串,说白了就是一串字符串.

 

RegExp对象用于规定在文本检索的内容.

 

什么RegExp

RegExp是正则表达式的缩写.

当你检索某个文件时,可以使用一种模式来描述药检所的内容.RegExp就是这种模式.

简单的模式可以是一个单独的字符.

更复杂的模式包含了更多的字符,并可以用于解析,个时间差,替换等等.

你可以规定字符串中的检索位置,以及要检索的字符类型,等等.

 

 

定义RegExp

RegExp对象用于存储检索模式

通过new关键字来定义RegExp对象.

案例:匹配模式是”e”

var patt1=new RegExp("e");

当你使用该RegExp对象在一个字符串中检索时,将寻找的字符是”e”.

 

 

RegExp对象的方法.

最常用的就三个,不常用的不说

test()方法检索字符串中的指定值.返回值是truefalse

案例:

<script>

var part1=new RegExp("e");

document.write(part1.test("The best things in life are free"));

</script>

由于该字符串中存在字母”e”,以上代码的输出将是:true.

 

exec()方法检索字符串中的指定值.返回值是被找到的值.如果没有发现匹配,则返回null.

<script>

var part1=new RegExp("e");

document.write(part1.exec("The best things in life are free"));

</script>

 

 

你可以向RegExp对象添加第二个参数,用以设定检索.例如,如果需要找到所有某个字符的所有存在,则可以使用”g”参数(“global”全局的意思)

在使用”g”参数是,exec()的工作原理如下:

a.找到第一个”e”,并存储其位置

b.如果再次运行exec(),则从存储的位置开始检索,并找到下一个”e”,并存储其位置

 

<script>

var patt1=new RegExp("e","g");

 

var result="";

while (result!=null)

{

result=patt1.exec("The best things in life are free");

document.write(result);

}

</script>

 

由于这个字符串中有六个”e”字母,代码的输出为:eeeeeenull位数最后会出现null?你考虑一下.

 

compile()方法用于改变RegExp.

compile()既可以改变检索模式,也可以添加或删除第二个参数.

 

<script>

var patt1=new RegExp("e");

document.write(patt1.test("The best things in life are free")+"<br/>");

 

patt1.compile("d");

 

document.write(patt1.test("The best things in life are free"));

</script>

 

你肯定会说,为啥只能匹配一个字符,写这种小儿科逗我呢?其实你仔细想想,在创建RegExp对象的时候,使用new RegExp(“e”,”g”);e代表匹配e,g代表全局,肯定能在e的位置写别的,比如一些复杂的东西,我想在一大串字符串中查找某个具有特定规律的,肯定有办法,没错!你很聪明,就是使用这个,前段时间看到有人写了一段正则表达式在教务处网站上抓取自己的成绩.感觉很吊.

http://www.w3school.com.cn/jsref/jsref_regexp_wordchar.asp

详细内容这里面用,还有各种案例.

 

0 0
原创粉丝点击