系统学习javaweb重点难点2--.JavaScript中的正则对象简述和正则对象使用注意事项。
注意:只是简述,对正则对象的了解目前还不是很深刻,日后详细了解了再来修改。
正文:
正则对象
首先,我们要了解一下什么是正则对象:
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
1、RegExp对象的创建方式
RegExp对象表示正则表达式,它是对字符串执行模式匹配的强大工具。
创建方式:
var reg = new RegExp(“表达式”); (开发中基本不用)
var reg(变量名) = /^表达式$/ 直接量(开发中常用)
直接量中存在边界,即^代表开始,&代表结束
所谓直接量(literal),就是程序中直接使用的数据值。
直接量方式的正则是对象,不是字符串,不要用引号。
2、test方法 注意是test 而不是text
正则对象.test(string); 用来检验字符串是否匹配正则。
全部字符匹配返回true,有字符不匹配返回false
3、正则对象使用注意事项。
直接量方式,如果一个字符不符合正则要求,就返回false,只有全部满足,才会返回true。
例如:
<script type="text/javascript">
var reg=/^xjmwan$/; //0-多个空格
var flag= reg.test("xjmwan1314");
alert(flag);
</script>
字符串xjmwan1314中含有对象xjmwan但是多出了1314,所以返回了false,这也是直接量方式适用于表单提交的优点,例如数据库中存储的密码是xjmwan,而当你输入xjmwan1314时很明显不是密码,返回false
而普通方式:
<script type="text/javascript">
var reg=/xjmwan/; //0-多个空格
var flag= reg.test("xjmwan1314");
alert(flag);
</script>
普通方式的对象包含在字符串xjmwan1314中,所以返回了true,普通方式适用于检索,字符串xjmwan1314中包含xjmwan所以检索出来了返回false,此时要注意,xjmwan对象是一个整体,相当于一个“字符”。
而改动一下正则对象的普通方式:
<script type="text/javascript">
var reg=/xjmwan9/; //0-多个空格
var flag= reg.test("xjmwan1314");
alert(flag);
</script>
字符串中并不包含整体xjmwan9,所以普通方式返回了false。
再次更改正则对象的普通方式:
<script type="text/javascript">
var reg=/xjmwan || 8/; //0-多个空格
var flag= reg.test("xjmwan1314");
alert(flag);
</script>
字符串中不包含9但是包含xjmwan,所以返回了true。
由此可见:普通方式和直接量方式的区别是没有了^ $,普通方式,只要字符串中含有全部对象或者对象中的一个,就返回true。如果全部不包含,就返回false。
即:
/^表达式$/ 只要有无法成立的正则字符存在,即为false。
全部符合才为true
(检查严格,眼睛里揉不得沙子)
适用于表单校验
/表达式/ 只要有成立正则的字符存在,即为true。(只要字符串中含有全部对象或者对象中的一个,就返回true。如果全部不包含,就返回false。)
(检查不严格,懒人思想)
适用于字符串查找、替换。
最新文章
- MemoryMappedFile 在 Mono in Linux 的开发笔记
- js事件(Event)知识整理
- textarea去掉右侧滚动条,去掉右下角拖拽
- vue2.0入门
- 作用域与闭包:this,var
- web跨页弹窗选值
- mysql 的数据类型
- Android开发之旅:环境搭建及HelloWorld(转)
- CCF CSP 201612-1 中间数
- 为什么wait()和notify()属于Object类
- 线程 ID
- Hibernate HQL一对多 在一方的查询
- 初窥scrapy爬虫
- byte,short,int,long数据之间的倍数关系
- JVM 系列 ClassLoader
- Buildroot 打包文件系统流程跟踪
- String Problem HDU - 3374(最大最小表示法+循环节)
- 谈一谈URL
- isinstance()判断数据类型
- [冬令营模拟]GTSG2018
热门文章
- POJ 1844:Sum ”滚动“数组
- POJ 2251:Dungeon Master
- BZOJ [Cqoi2017] 小Q的棋盘
- Cpp:";->;";和";.";的区别
- 【One by one系列】一步步学习TypeScript
- Linux-线程同步之互斥锁
- vim 马哥
- uni-app真机调试报错request:fail abort解决方法
- Django框架(七):模型(三) 关联、模型类的属性
- 深入理解JVM - 垃圾收集器