系统学习javaweb重点难点2--.JavaScript中的正则对象简述和正则对象使用注意事项。

限于喜欢 提交于 2020-02-02 20:38:47

注意:只是简述,对正则对象的了解目前还不是很深刻,日后详细了解了再来修改。

正文:

正则对象

首先,我们要了解一下什么是正则对象:

正则表达式,又称规则表达式。(英语: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。)

                           (检查不严格,懒人思想)

                            适用于字符串查找、替换。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!