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. github page 配置hexo 博客 的常见错误

    缘起 最近看到好多的公众号作者推荐大家搭建自己的博客,自己手痒也搭建了一个个人博客lumang,具体过程就是一开始上网搜索一番教程,按照教程开始搭建,由于是windows的环境,同时教程也有很多的老旧 ...

  2. Django中数据库表的关联与创建(语言:python)

    首先选择选用的数据库,(本人选用django(1.11.8版本)) 在主项目settings中操作如下: DATABASES = { 'default': { 'ENGINE': 'django.db ...

  3. Hibernate Session总结

    现在我们可以在 IDEA 下新建一个 Hibernate 项目,接着上次内容这次主要总结一下 Hibernate 的 Session,及其核心方法. Session 概述 Session 接口是 Hi ...

  4. Setting up Latex-vim (or Latex-suite) plugin within macVim under Mac OSX Yosemite 2015-1-20 by congliu

    1. Overview: Vim是命令行下的文本编辑程序,gVim是Vim的Linux下的图形化版本,macVim是Mac下的图形化版本 Latex-vim是vim写Latex文件时的插件 Skim是 ...

  5. PAT1032: Sharing (25)

    1032. Sharing (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To store Engl ...

  6. HBuilder 插件开发(openinstall 集成)

    离线打包 如果要集成使用非基座包下的第三方 SDK,就必须使用离线打包.可以参考 官方文档 进行离线打包,如果嫌官方文档看不懂,可以查看 其他技术人员的教程 开发插件 编写 Android 原生代码 ...

  7. RPC详解

    RPC(Remote Procedure Call),即远程过程调用,是一个分布式系统间通信的必备技术,本文体系性地介绍了 RPC 包含的核心概念和技术,希望读者读完文章,一提到 RPC,脑中不是零碎 ...

  8. 论C++如何优雅的使用数组

    C/C++中如果一个函数接受一个数组作为参数,那么数组将会被退化为指针,如果定义如下代码: //数组arr的大小未知. int arrsize(int arr*) { cout << &q ...

  9. Masonry中的mas_makeConstraints方法

    2018年04月12日 10:10:54 阅读数:138 一.简单介绍 我们一般来说会这样进行使用 [view mas_makeConstraints:^(MASConstraintMaker *ma ...

  10. 8.app后端和web后端的区别

    很多从web后端转到app后端的小伙伴经常很茫然,不知道这两者之间有啥区别.本文通过例子,分析web后端和app后端的区别,使各位更好地把握app后端的架构. (1) app后端要慎重考虑网络传输的流 ...