JavaScript 正则表达式

 正则表达式是由一个字符序列形成的搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。

 正则表达式可以是一个简单的字符,或一个更复杂的模式。正则表达式可用于所有文本搜索和文本替换的操作。  

 使用字符串方法

  在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。

  search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

  正则:var str = "Visit Runoob!";  var n = str.search(/Runoob/i);

  字符串:var str = "Visit Runoob!";  var n = str.search("Runoob");

  replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

  正则:var huas = box.innerHTML;
     var xin = huas.replace(/hua/i, 'hermit'); //正则方式 第一个为正则,第二个为新值
     box.innerHTML = xin;

  字符串: var huas = box.innerHTML;
       var xin = huas.replace('qq', 'wertyuiop'); //字符串方式  第一个为旧值,第二个为新值
       box.innerHTML = xin;

正则表达式修饰符

  i : 执行对大小写不敏感的匹配。

    g: 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)

   m:执行多行匹配。

正则表达式模式

  方括号用于查找某个范围内的字符:

  表达式

  [abc]  查找方括号之间的任何字符。

  [0-9]  查找任何从 0 至 9 的数字。

  (x|y)  查找任何以 | 分隔的选项。

  元字符是拥有特殊含义的字符:

  \d  查找数字。

  \s  查找空白字符。

  \b  匹配单词边界。

  \uxxxx  查找以十六进制数 xxxx 规定的 Unicode 字符。

  量词:

  n+  匹配任何包含至少一个 n 的字符串。

  n*   匹配任何包含零个或多个 n 的字符串。

  n?  匹配任何包含零个或一个 n 的字符串。

使用 RegExp 对象

  在 JavaScript 中,RegExp 对象是一个预定义了属性和方法的正则表达式对象。  

  使用 test()

    test() 方法是一个正则表达式方法。

    test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

    例:var patt = /u/i;  声明一个变量来保存正则表达式

     var  a  = patt.test("The best things Use in life are free!");

     console.log('a==>>', a);

    或者这样写:var b =  /e/.test("The best things in life are free!")

          console.log('b==>>', b);

  

  使用 exec()

  exec() 方法是一个正则表达式方法。

  exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放有匹配的结果。如果未找到匹配,则返回值为 null。

  例:// exec()方法
    var patt = /u/i;  //声明一个变量来保存正则表达式
    var aa = patt.exec("The best things Use in life are free!");
    console.log('aa==>>', aa);

    输出结果:

  正则表达式表单验证实例: 

  /*是否带有小数*/
  function isDecimal(strValue ) {
  
var objRegExp= /^\d+\.\d+$/;
  
return objRegExp.test(strValue);
  
}   /*校验是否中文名称组成 */
  function ischina(str) {
     
var reg=/^[\u4E00-\u9FA5]{2,4}$/; /*定义验证表达式*/
     
return reg.test(str);       /*进行验证*/
  
}   /*校验是否全由8位数字组成 */
  function isStudentNo(str) {
      
var reg=/^[0-9]{8}$/;        /*定义验证表达式*/
      
return reg.test(str);       /*进行验证*/
  
}   /*校验电话号码格式 */
  function isTelCode(str) {
      
var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
      
return reg.test(str);
  
}   /*校验邮件地址是否合法 */
  function IsEmail(str) {
      var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/;
      return reg.test(str);
  }

 

javascript入门篇(六、正则表达式)的更多相关文章

  1. JavaScript入门篇 编程练习

    编程挑战 一.定义"改变颜色"的函数 提示: obj.style.color obj.style.backgroundColor 二.定义"改变宽高"的函数 提 ...

  2. 慕课网JavaScript入门篇课程笔记

    1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...

  3. JavaScript入门篇

    记录一下在慕课网学习JavaScript的过程. 以下内容均来自慕课网. 传送:https://www.imooc.com/code/401 为什么学习JavaScript 1. 所有主流浏览器都支持 ...

  4. 开心菜鸟系列----函数作用域(javascript入门篇)

      1 <!DOCTYPE html>   2 <html>   3 <script src="./jquery-1.7.2.js"></ ...

  5. 开心菜鸟系列----变量的解读(javascript入门篇)

                       console.info(         console.info(window['weiwu'])          console.info(window. ...

  6. 【SSRS】入门篇(六) -- 分组和总计

    原文:[SSRS]入门篇(六) -- 分组和总计 通过[SSRS]入门篇(五) -- 设置报表格式的设计,一份简单格式的报表已产生,如下图: 这节来说说分组和总计: 根据日期.订单对数据进行分组 添加 ...

  7. 1、JavaScript入门篇

    一.你知道,为什么JavaScript非常值得我们学习吗? 1. 所有主流浏览器都支持JavaScript. 2. 目前,全世界大部分网页都使用JavaScript. 3. 它可以让网页呈现各种动态效 ...

  8. javascript入门篇(三)

    字符串属性和方法 原始值字符串,如'liang', 没有属性和方法(因为他们不是对象). 原始值可以使用 JavaScript 的属性和方法,因为 JavaScript 在执行方法和属性时可以把原始值 ...

  9. javascript 进阶篇1 正则表达式,cookie管理,userData

    首先,什么事正则表达式呢,其实引入概念很多时候并不能帮我们明白它到底是什么,所以我先简单描述下,正则表达式,其实就是一个记录字符串规则则的字符串,等我们看完这一部分,也就能明白它到底是什么了. 基本语 ...

随机推荐

  1. js对象属性值为对象形式取值方式

    console.log(rowData);//取带点的属性值 console.log(rowData['layoutPipegallery.pipegallerycode']);//取带点的属性值

  2. 局部内部类访问它所在方法的局部变量时,要求该局部变量必须声明为final的原因

    这是java的一条规则.那么为什么会有这条规则呢?要想弄懂这个问题,就需要弄懂局部内部类对象和局部变量的生命周期的谁更长的问题. 首先,看一段代码,以没有将变量声明为final的代码作为例子,代码如下 ...

  3. Intellij-Idea Maven SSH项目的搭建

    添加阿里云镜像 在.m2/settings.xml中, <mirror> <id>nexus-aliyun</id> <name>Nexus aliyu ...

  4. 正则表达式re模块小结

    re模块的常用方法 1.compile(pattern[,flags]) 创建模式对象,一般配合其他方法使用.例如: import re #导入re模块 text = 'All that doth f ...

  5. 云计算一:VMware workstation的安装和使用教程

    VMware workstation的安装和使用教程 一.VMware 安装 1.从网上找到VMware的安装包以及要安装的映像文件,下载到本地,然后备份一份存储到百度云盘. 链接:http://pa ...

  6. HTML 返回顶部

    每次看淘宝,看微信,都回有回到顶部的小logo,小图标,或者双击返回顶部.所以就学习了如何返回顶部的操作,一开始是联想html中的链接描点,在开头出设置个标签,下面点击另外一个标志回去.有三种觉得比较 ...

  7. Design5:SQL Server 文件和文件组

    数据库是数据的仓库,用于存储数据,而存储数据需要媒介,现在的存储媒介,最常用的是硬盘,土豪一点的服务器使用固态硬盘(SSD),特殊用途的服务器使用内存.数据库最常用的存储文件是数据文件和日志文件,数据 ...

  8. Unity文档阅读 第一章 入门

    Before you learn about dependency injection and Unity, you need to understand why you should use the ...

  9. Android的JDK、SDK、Eclipse的理解

    今天看了这方面的内容,感觉学到了一些东西: 首先,jdk是用来处理Java语言的, sdk是用来处理Java语言和硬件之间的关联的, eclipse是用来编写Java语言的, 通过对这方面的理解,加深 ...

  10. MySQL索引及查询优化总结 专题

    小结:db名与应用名相同,表名:业务名_此表的作用 ,表名表示内容,不体现数量,如果表示boolean概念,表名需要使用is_业务含义来表示,但POJO中不应该出现isXXX,因为不方便序列化,中间的 ...