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. 架构之Nginx(负载均衡/反向代理)

    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器 ,也是一个 IMAP/POP3/SMTP 代理 服务器 . Nginx 是由 Igor Sys ...

  2. 函数上下文this

    一般来说谁调用上下文都指向谁,具体有以下几种情况: 1.函数用圆括号调用,函数的上下文是window 注意:所有的全局变量都是window的属性,而函数里边定义的变量谁的属性也不是. 2.函数作为对象 ...

  3. 看完这篇Linux基本的操作就会了

    前言 只有光头才能变强 这个学期开了Linux的课程了,授课的老师也是比较负责任的一位.总的来说也算是比较系统地学习了一下Linux了~~~ 本文章主要是总结Linux的基础操作以及一些简单的概念~如 ...

  4. .NET Core使用微软官方类库实现汉字转拼音

    一.NuGet包 拼音:Install-Package SimplifiedChinesePinYinConversion 简体-繁体互转:Install-Package TraditionalChi ...

  5. 前端开发中的JS调试技巧

    前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今 ...

  6. linux Tcpdump使用方法

    用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的&qu ...

  7. MySQL 的性能(下篇)—— 性能优化方法

    简介 文中内容均为阅读前辈的文章所整理而来,参考文章已在最后全指明 本文分为上下两篇: 上篇:MySQL 的 SQL 执行分析 下篇:MySQL 性能优化 下面为下篇内容,分为以下部分: 一.创建表时 ...

  8. SpringBoot 同时整合thymeleaf html、vue html和jsp

    问题描述 SpringBoot如何同时访问html和jsp SpringBoot访问html页面可以,访问jsp页面报错 SpringBoot如何同时整合thymeleaf html.vue html ...

  9. MongoDB与python交互

    1.Pymongo PyMongo是Mongodb的Python接口开发包,是使用python和Mongodb的推荐方式.官方文档 2.安装 进入虚拟环境 sudo pip install pymon ...

  10. ubuntu16.04开机循环输入密码无法进入桌面的解决办法

    前些天碰到一个头疼的问题,启动我的ubuntu之后,输入密码闪屏一下,又需要输入密码!!!于是再输还要再输!!!!! 经过百度一翻后终于找到原因和解决办法. 原来是我之前在profile文件里配置了一 ...