JS正则表达式RegExp的总结

RegExp模式概念:

当你需要在一个目标字符串中,检索或操作一种类型的子字符串(该类型用RegExp来描述,包括了抽象,数量,位置和逻辑组合构成),那么就需要使用RegExp对象。

一、RegExp对象的组成:

RegExp对象由字符模式和搜索范围组成。

字符串模式的类型:

(1). 字符和模式:字符串长度确定的模式(包括确定的字符串和模糊匹配的字符)"%d%d/%d%d/%d%d%d%d", “Jackson”,本身就是表达了与的关系。

(2).自定义组合逻辑或非:字符串模式中任意一个都遍历目标串的模式([], (),逻辑与或|, ^非),[AEIOUaeiou]匹配元音,“([a-z][A-Z][0-9])+”()是将几个或组合在一起匹配aB0。”[to|too|2]”;^在[]内为非,否则为定位符号;与可以用或来表达/[^\w\s]/g

 

(3). 数量:字符模式个数的修饰,+,-,*,?,{n}元符号;“fo+”与football匹配。

(4). 位置:字符串模式位置的修饰,^,$,\b, \B;”ar$”和car匹配。

 

(5). 转义符号\, “Th\*”与Th*匹配,常规模式在字符串中也要”\\s”,前面的\也是转义字符。

 

 搜索范围有i, g, m:

i 执行对大小写不敏感的匹配。

g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

m 执行多行匹配。

 

二、RegExp对象的获得:

RegExp对象可以用:var p1 =newRegExp("[^xyz]", "g")获得,或直接用var p1=/[^xyz]/g获得。

 

三、RegExp对象的使用:

RegExp对象可以在RegExp对象方法:test,exec,compile;string对象search,match,replace,split方法中使用。

RegExp中使用正则表达式:

test() 方法检索字符串中的指定值。返回值是 true 或 false。

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

compile() 方法用于改变 RegExp。也可以添加或删除第二个参数。

 

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

找到第一个"e",并存储其位置

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

例子1:

<html>

<head>

function testRE()

{

varpatt1=new RegExp("e");

document.write(patt1.exec("Thebestthings in life are free"));

varpatt1=newRegExp("e","g");

do

{

result=patt1.exec("Thebest things inlife are free");

document.write(‘\n’);

document.write(result);//第一次eeeeee

}

while(result!=null);

}

</head>

<body onload = testRE()>

</body>

<html>

由于这个字符串中 6 个 "e" 字母,代码的输出将是:

ee e e e e e null 7

 

string中使用正则表达式:

例子2:

<html>

<head>

<script>

οnerrοr=handleErr;// 错误的调试

functionhandleErr(msg,url,l)

{

txt="本页中存在错误。\n\n"

txt+="错误:" + msg +"\n"

txt+="URL:" + url + "\n"

txt+="行:" + l +"\n\n"

txt+="点击“确定”继续。\n\n"

alert(txt)

returntrue

}

function testE(valueStr)

{

    varstr = valueStr;//arguments[0];

    varstrResult = str.replace(/[^\w\s]/g,'0');// 非单词且非空白字符用0代替

   document.write(strResult);

}

</script>

</head>

<body onload = "testE('Give100%!')"> // 带有参数的js函数调用需要""号修饰(若不修饰,则只能是无参函数)

</body>

</html>

更多的模式规则访问:

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

参考:

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

http://www.php100.com/html/webkaifa/javascript/2010/0803/5130.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值