正则表达式


2010年6月2日

正则表达式就是一个匹配模式。
SQL注入:利用SQL的一些语法规则来达到修改数据库的目的。
正则表达式:是通过ECMAscript的RegExp来实现的。
var re = new RegExp(匹配模式,命令);
或者:var re = /匹配模式/命令;
这里的命令是正则表达式匹配的额外指令。
常用的命令:
g:代表全局匹配,也就是global
i:不区分大小写,也就是ignore
multiformity:多行匹配的命令
实例:var str = "a bat cat"; var reg=/at/gi; str.replace(reg,'tt');

正则表达式的两个方法:exec(字符串):返回的只有一个元素的数组。test:判断是否包含匹配模式。
String里支持正则表达式的方法:
match(正则表达式);返回多个元素的数组。如果匹配不成功就返回一个null。
search(正则表达式);查找一个字符串,返回一个数字。如果不加g命令,找到了要找的字符串,就不往下找下了。
replace(正则表达式,要替换的字符串);
split();

匹配模式的两种模式:
简单模式:一个正则表达式有很多组成组分,这些组成模式有匹配模式和命令模式。由指定字符,元字符,字符类和量值等等组成的简单模式。
元字符:在正则表达式所占用的字符。如:(,[,{,\,^,$,?,+,*,.,},],)
预定义字符串:如:\t , \r ,\f ,\n ,\a ,\e ,\b ,\v等
\t: 空格
\n: 换行
\r: 晓不得
预定义类:如:.代表[^\n\r],\d代表[0-9],\D代表[^0-9],\w代表[a-z 0-9 A-Z],\W代表[^a-z 0-9 A-Z_]

选择类:是用在分组里面的。是用 | 来区别的。
244427626 1258931349 133349133
字符类:包含在中括号里的字符,告诉正则表达式匹配其中一个字符串。字符串包含中括号中字符[abcd]
反字符类:如不包含a到z的字符串:字符串不包含中括号中字符[^abcd]
范围字符类:如包含a到z的字符串:[a-z],如不包含a到z的字符串:[^a-z],
表示a到z和0到9[a-z0-9],表示a到z或0到9[a-z 0-9]

量值:如? 代表0次或一次。* 代表0次或多次。+ 代表1次或多次。
{n} 代表指定要出现n次。{n,}代表出现n次以上。{n,m}代表出现n次到m次。
硬性量值:指定了数目的多少
软性量值:没有指定数目的多少
按懒惰情况来分:
贪婪的:它一直往下匹配,它首先读第一个字符进行匹配,如果匹配不成功,则读下一个字符,并把前面不匹配的字符删除掉。如果匹配,则把相匹配的字符串截取出来放进数组中。如果字符串长度不为0,则继续往下读取。我们到目前为止用的都是贪婪的。

惰性的:首先看字符串中的第一个字符是否匹配。如果这个字符不匹配的话,那么继续读取下一个字符,组成两个字符,一直这样下去。如果匹配成功的话,那么就把相匹配的字符串截取出来放进数组中,再从新开始读取。
只以出现最少次数匹配。

区分贪婪的和惰性的就是看量值后面是否加了一个?,如果没有加就是贪婪的,如果加了就是惰性的。

复杂模式:
它就是由分组,反向引用,前瞻和其他的一些正则表达式功能组成。
分组:是通过一对小括号包含一系列字符组成。如:var ref = /(dog)*/gi; 一般是用在当要查找一个字符串出现多少次数。

边界:^代表字符串的头边界,$代表字符串的尾边界。如:var ref =/^\w*$/g;

 

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值