说明

这篇文章,主要和大家聊聊JavaScript中RegExp对象的属性。
解释
每个RegExp对象都包含5个属性,source、global、ignoreCase、multiline、lastIndex。
source:是一个只读的字符串,包含正则表达式的文本。
var reg = /JavaScript/; reg.source; //返回 JavaScript
global:是一个只读的布尔值,看这个正则表达式是否带有修饰符g。
修饰符g,是全局匹配的意思,检索字符串中所有的匹配。
var str = "JavaScript"; str.match(/JavaScript/); //只能匹配一个JavaScript var str = "JavaScript JavaScript"; str.match(/JavaScript/g); //能匹配两个JavaScript var reg = /JavaScript/; reg.global; //返回 false var reg = /JavaScript/g; reg.global; //返回 true
ignoreCase:是一个只读的布尔值,看这个正则表达式是否带有修饰符i。
修饰符i,说明模式匹配是不区分大小写的。
var reg = /JavaScript/;
reg.ignoreCase; //返回 false
var reg = /JavaScript/i;
reg.ignoreCase; //返回 true
var reg = /JavaScript/;
reg.test("javascript"); //返回 false
var reg = /JavaScript/i;
reg.test("javascript"); //返回 true
multiline:是一个只读的布尔值,看这个正则表达式是否带有修饰符m。
修饰符m,用以在多行模式中执行匹配,需要配合^ 和 $</code> 使用,使用<code>^</code> 和 <code>$ 除了匹配整个字符串的开始和结尾之外,还能匹配每行的开始和结尾。
var str="java\nJavaScript"; str.match(/^JavaScript/); //返回null var str="java\nJavaScript"; str.match(/^JavaScript/m); //匹配到一个JavaScript var reg=/JavaScript/; reg.multiline; //返回false var reg=/JavaScript/m; reg.multiline; //返回true
lastIndex:是一个可读/写的整数,如果匹配模式中带有g修饰符,这个属性存储在整个字符串中下一次检索的开始位置,这个属性会被exec( ) 和 test( ) 方法用到。
exec( )方法是在一个字符串中执行匹配检索,如果它没有找到任何匹配,它就返回null,但如果它找到了一个匹配,它就返回一个数组。
当调用exec( )的正则表达式对象具有修饰符g时,它将把当前正则表达式对象的lastIndex属性设置为紧挨着匹配子串的字符位置,当同一个正则表达式第二次调用exec( ),它会将从lastIndex属性所指示的字符串处开始检索,如果exec( )没有发现任何匹配结果,它会将lastIndex重置为0。
test( )方法,它的参数是一个字符串,用test( )对某个字符串进行检测,如果包含正则表达式的一个匹配结果,则返回true,否则返回false。
var str="java"; var reg=/JavaScript/; reg.test(str); //返回false var str="JavaScript"; var reg=/JavaScript/; reg.test(str); //返回true
当调用test( )的正则表达式对象具有修饰符g时,它的行为和exec( )相同,因为它从lastIndex指定的位置处开始检索某个字符串,如果它找到了一个匹配结果,那么它就立即设置lastIndex为紧挨着匹配子串的字符位置
看看下面这段有趣的代码
var str="JavaScript"; var reg=/JavaScript/g; console.log(reg.test(str)); //打印 true console.log(reg.test(str)); //打印 false
为什么同样的字符串,同样的正则表达式,却打印的不一样,如果你已经理解了 lastIndex属性,那你一定明白为什么。
我们来看看到底发什么了什么
var str="JavaScript"; var reg=/JavaScript/g; console.log(reg.test(str)); //打印 true console.log(reg.lastIndex); //打印10,因为匹配到了JavaScript,所以设置lastIndex为匹配结果紧挨着的字符位置 console.log(reg.test(str)); //打印 false,因为从lastIndex位置检索字符串,已经没有匹配结果了 console.log(reg.lastIndex); //打印0,因为没有匹配到结果,所以将lastIndex重置为0
这里注意一点,如果第一次调用test( )匹配结束后,我们手动将lastIndex重置为0,那么第二次调用test( ),同样可以打印true
var str="java JavaScript java"; var reg=/JavaScript/g; console.log(reg.test(str)); //打印 true reg.lastIndex=0; console.log(reg.test(str)); //打印 true
在强调一次,上面说的关于lastIndex的问题,都是因为正则表达式对象中带有修饰符g,如果不带有修饰符g,就不用担心这些问题了。
总结
这次主要是说说,JavaScript中正则表达式对象的5个属性,而最需要注意的就是lastIndex属性了。
# 正则表达式lastindex属性
# js正则表达式
# lastindex属性
# 浅析正则表达式中的lastIndex以及预查
# js正则表达式之RegExp对象属性lastIndex
# lastMatch
# lastParen
# lastContext
# rightContext属性讲解
# Javascript lastIndex 正则表达式的一个疑惑
# 浅析lastIndex对正则表达式结果的影响
# 是一个
# 修饰符
# 正则表达式
# 它就
# 会将
# 布尔值
# 都是
# 找到了
# 如果你
# 是在
# 还能
# 这段
# 来看看
# 因为它
# 这篇文章
# 你一定
# 设置为
# 没有找到
# 需要注意
# 将把
相关文章:
怀化网站制作公司,怀化新生儿上户网上办理流程?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
太原网站制作公司有哪些,网约车营运证查询官网?
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
江苏网站制作公司有哪些,江苏书法考级官方网站?
如何用腾讯建站主机快速创建免费网站?
建站主机如何选?性能与价格怎样平衡?
如何使用Golang table-driven基准测试_多组数据测量函数效率
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
如何在宝塔面板中创建新站点?
如何获取免费开源的自助建站系统源码?
如何在万网主机上快速搭建网站?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
浅谈Javascript中的Label语句
如何通过PHP快速构建高效问答网站功能?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
高防服务器租用指南:配置选择与快速部署攻略
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
定制建站如何定义?其核心优势是什么?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
英语简历制作免费网站推荐,如何将简历翻译成英文?
济南专业网站制作公司,济南信息工程学校怎么样?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
如何在云虚拟主机上快速搭建个人网站?
网站app免费制作软件,能免费看各大网站视频的手机app?
营销式网站制作方案,销售哪个网站招聘效果最好?
如何确认建站备案号应放置的具体位置?
如何在建站之星绑定自定义域名?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
建站之星在线版空间:自助建站+智能模板一键生成方案
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
建站之星如何开启自定义404页面避免用户流失?
定制建站流程解析:需求评估与SEO优化功能开发指南
济南网站建设制作公司,室内设计网站一般都有哪些功能?
建站之星后台密码遗忘如何找回?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
内部网站制作流程,如何建立公司内部网站?
如何获取PHP WAP自助建站系统源码?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
建站主机系统SEO优化与智能配置核心关键词操作指南
如何在万网ECS上快速搭建专属网站?
微课制作网站有哪些,微课网怎么进?
Python如何创建带属性的XML节点
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
实例解析Array和String方法
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何在云主机上快速搭建网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。