RegExp正则对象原理及应用

RegExp对象

RegExp对象用以专门记录一则正则表达式,该对象提供了多种函数,得以更加简易的使用正则表达式执行验证和查找操作。

创建RegExp对象
  • var reg=/正则/ig;
    将固定的正则表达式直接付给一个变量,是简易的创建对象方法,但是实际应用中往往更加灵活,需要根据条件来改变正则表达式的值。
    -var reg=new RegExp("正则字符串格式","ig")
    使用new来创建对象虽然略复杂,但是由于正则表达式是由字符串的形式传入的,故可以与变量和逻辑结合,更加灵活。
RegExp对象函数
  • var bool=reg.test(str);
    RegExp对象reg检查字符串str是否符合正则表达式的要求,符合要求返回true,否则返回flase。

注:通常情况下,只要字符串中含有符合正则规则的部分即返回true,如果需要完全符合才返回,有多余字符返回flase,需在正则前后分别加 ^ 与 $ 。

  • var arr=reg.exec(str);
    在字符串str中查找符合RegExp对象reg中正则的要求的下一个敏感词。
    返回值:arr:[0:“敏感词”,index:“位置”] 或者没找到返回为空。

创建reg对象时第二个参数含有g,含义为搜索全部,此时可以通过反复调用exec查找下一个关键词。

查找字符串中含有的所有关键词,返回n个格式为[0:"敏感词",index:"位置"]的数组。

do{
	var names=reg.exec(str);
	if(arr!=null){
		...
	}else break;
}while(true);
  • 原理:
    a. RegExp对象中含有隐藏属性 lastindex 用以记录下次搜索开始的位置。
    b. 当一个RegExp对象被建立时,其值为初始值,搜索从头开始。
    c. 当执行过一次exec函数时, lastindex属性被重置,值变更为本次搜索到的位置 + 关键词的长度。
    d. 也就是下次调用该对象的exec函数时,搜索从本次结束的位置开始,查到下一个关键词为止。
    e. 调用方法:reg.lastindex;

附:正则要点总结

表达式含义解析
[备选字列表]规定一位字符上存在多种备选字的的列表[一二三]字符串中对应位置出现一,二,三都符合要求
[备选字-备选字]连续备选字符表示法,首尾字符用 - 连接,如A-Z,a-z,0-9[a-zA-Z]字母吻合
[\u4e00-\u9fa5]汉字吻合
\预定义字符备选字列表的简化版\d[0-9]
\w[0-9A-Za-z]
\s空格制表符等
{ n,m }n为至少有的数量,m为上限数量,{n,}为无上限,{n}为仅n次/d{4}当有连续的4位 0-9 数字时符合
*可有可无多了不限z/d*字母z后无论是否有数字,有几个数字,都不影响其吻合要求
?可有可无最多一次z/d?字母z后无论是否有数字都不影响吻合,但最多只能有一个数字
+可有可无最多一次z/d+字母z后必须有数字才可吻合,数字的多少无要求
|分组符号,含义为 或去|qv去与其拼音都符合要求
()分组符号,多个子规则视为一个整体,再和其他规则匹配我(qv|去)我去与我qv都符合要求
^字符串开头^/d字符串开头有一个数字
$字符串结尾/d$字符串结尾有一个数字
\b单词边界\b[a-z]每个单词开头为小写字母
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值