js的正则表达式

正则表达式(regular expression)是一中描述字符模式的对象,js的RegExp类表示正则表达式,String与RegExp都定义了相应的方法来操作正则表达式,比如模式匹配,文本检索和替换等。

正则表达式的定义:
定义正则表达式可以使用RegExp()构造函数来创建RegExp对象。不过RegExp对象最常见的创建形式是通过直接量来实现,就像创建String对象一样: var reg = /s$/;
用RegExp()构造函数也可以构建等价的正则表达式:var reg = new RegExp("s$");
正则表达式的模式规则是有一个字符序列组成,包括数字与字母在内,大多数的字符都是按照字面含义匹配的。比如说正则表达式:/java/可以匹配任何包含java子串的字符串。
除此之外,正则表达式正还有许多表示特殊含义的字符,这些字符是需要大家牢记的。比如:/s$/包含两个字符,第一个字符s按照字面意思匹配,第二个字符是具有特殊含义的元字符,用于匹配字符串的结束,因此这句话的含义就是匹配一个以s结尾的字符串。
直接量字符:
上面提到正则表达式的所有字母与数字都是按照字面含义进行匹配的。同样js的正则表达式还支持非字母的字符匹配。这些字符需要通过反斜线(\)进行转义。比如转义字符\n用以匹配换行符。
如果我们想在正则表达式里匹配这些符号。那么必须使用前缀"\",这是一条通行的规则。其他标点符号没有特殊的含义,和其他字符一样按照字面意思匹配。
技术分享
字符类:
将直接量字符单独放在方括号内就构成了字符集。一个字符集可以匹配它所包含的任意字符。因此,正则表达式/[a,b,c]/,就和字母"a","b","c"中的任意一个都匹配。
技术分享
 
重复:
技术分享
 
 
选择,分组,引用:
技术分享
 
 
指定匹配位置:
技术分享
 
 
修饰符:
技术分享
 
 
用于匹配模式的String方法:
String支持4种正则表达式的方法,最简单的是search(),他的参数是一个正则表达式。返回第一个与之匹配的子串的起始位置,如果找不到起始的位置,则返回值为-1.如果search的参数不是正则表达式,则首先会通过RegExp()构造函数将他转换成正则表达式。search()不支持全局索引,因为他会忽略掉正则表达式中的g。
 math()函数:
function getRE()
        {
            var url = /(\w+):\/\/([\w.]+)\/(\S*)/;
            var text = " Visit my blog at http://www.log.com/~liwei";
            var result = text.match(url);
            if(result!=null)
            {
                var full = result[0];
                var protocol = result[1];
                var host = result[2];
            }
        }

exec()函数

 function test()
        {
            var pattern = /java/g;
            var text = "JavaScript is more fun than Java!";
            var result;
            while((result = pattern.exec(text)) != null)
            {
                alert("Matched"+result[0]+","+"at position"+result.index+";next search begins at "+pattern.lastIndex);
            }
        }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。