正则表达式的元字符是包含特殊含义的字符,他们有一些特殊的功能,可以控制匹配模式的方式,反斜杠后的元字符将失去其特殊含义

          单个字符

元字符              匹配情况

.                匹配除换行符外的任意字符

[a-z0-9]             匹配括号中的字符集中的任意字符

[^a-z0-9]              匹配任意不在括号中的字符集中的字符

\d                匹配数字

\D                匹配非数字同[^0-9]相同

\w                匹配字母和数字及_

\W                匹配非字母和数字及_

                重复字符

x?            匹配0个或者1个x

x*            匹配0个或者任意多个x

x+                 匹配至少1个x

(xyz)+             匹配至少一个xyx

x{m,n}          匹配最少m个,最多n个x

                替代字符

this|where|logo          匹配this或where或logo中任意一个

空白字符

\0              匹配null字符

\f              匹配进制字符

\n              匹配换行字符

\r              匹配回车字符

\t              匹配制表字符

\s              匹配空白字符,空格 制表和换行

\S              匹配非空白字符

              锚字符

^              匹配行首

$              行尾匹配

\A              只有匹配字符串开始处

\b              匹配单词边界,词在[]内时无效

\B              匹配非边界单词

\G              匹配当前搜索的开始位置

\Z              匹配字符串结束处或行尾

\z               只匹配字符串结尾处

            记录字符

(string)             用于反向引用的分组(括号内的看成一个字符)

\1或$1              匹配第一个分组中的内容

\2或$2              匹配第二个分组中的内容

\3或$3              匹配第三个分组中的内容

var box=/(.*)/;
var str="duwei19890220@163.com";
str.match(box);
alert(RegExp.$); //表示获取模式中第一个分组对应匹配的字符串 我们这里获取的是98
var box=/(.*)/;
var str="duwei19890220@163.com";
document.write(str.replace(box,"<strong>$1</strong>")); //这里的$1是获取第一个分组中的内容98 把他加粗
var box=/(.*)\s(.*)/;
var str="duwei liuhaibo";
document.write(str.replace(box,"$2 $1")); //位置交换

exec返回数组的操作

var box=/^([a-z]+)\s([-]{,})$/;                //使用分组
var str="duwei 2018";
//alert(box.exec(str)); //显示 duwei 2018 duwei,2018 为什么 exec方法返回的是数组
var a=box.exec(str);
alert(a.length); //数组长度为3
alert(a[]); //数组的第一个元素存储的是整个的字符串
alert(a[]); //第二个下标存储的是第一个分组匹配的字符串
alert(a[]);
var box=/(a?(b?(c?)))/;            //嵌套分组   从外往内分组
var str="abc";
var a=box.exec(str);
alert(a[]); //整个匹配到的字符串abc
alert(a[]); //匹配第一个分组匹配字符串 abc最外面的大括号
alert(a[]); //匹配第二个分组匹配字符串 bc 中间的括号
alert(a[]); //匹配第三个分组匹配字符串 c最里面的括号

javascript正则表达式获取控制的更多相关文章

  1. javascript正则表达式简介

      javascript正则表达式 javascript正则表达式 regular expression是一个描述字符模式的对象: ECMAScript中的RegExp类表示正则表达式: String ...

  2. 第一百零五节,JavaScript正则表达式

    JavaScript正则表达式 学习要点: 1.什么是正则表达式 2.创建正则表达式 3.获取控制 4.常用的正则 假设用户需要在HTML表单中填写姓名.地址.出生日期等.那么在将表单提交到服务器进一 ...

  3. JavaScript正则表达式详解(一)正则表达式入门

    JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...

  4. Python自动化 【第十八篇】:JavaScript 正则表达式及Django初识

    本节内容 JavaScript 正则表达式 Django初识 正则表达式 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  5. JavaScript正则表达式下——相关方法

    上篇博客JavaScript 正则表达式上——基本语法介绍了JavaScript正则表达式的语法,有了这些基本知识,可以看看正则表达式在JavaScript的应用了,在一切开始之前,看看RegExp实 ...

  6. 5分钟教你学会JavaScript正则表达式

    正则表达式在实际开发过程中和技术面试过程中的重要性不言而喻,本文仅仅只是教你如何在几分钟之类学会正则表达式,对于它的原理及运行机制不做介绍. 第一:什么是正则 正则表达式是一种用来描述一定数量文本的模 ...

  7. 正则表达式获取body内容

    最近项目需要,要弄个正则表达式获取body的内容. 用过angularjs就知道,很多时候要写指令时引用templateUrl的时候.template的内容root是不能包含多个节点的,否则就报错. ...

  8. javascript 正则表达式补充

    定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...

  9. JavaScript 正则表达式基础语法

    前言 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为相当 ...

随机推荐

  1. .Net Core + NGINX跳转登录时端口丢失

    使用.Net Core + NGINX部署到服务器的时候,如果端口不是使用默认的80端口,在跳转到登录页面时,URL中的端口丢失. NGINX的配置如下: server { listen ; loca ...

  2. 异常测试之Socket网络异常

    本文由作者张雨授权网易云社区发布. 前言 不知道大家在测试的过程中有没有发现关于异常测试这样一个特点: 无论是分散在功能测试中的异常用例还是规模相对较大的专项异常测试中,异常测试的用例占比虽然不大但是 ...

  3. foreach写失效的问题

    本文由作者张远道授权网易云社区发布. 坦白讲身为程序员,bug在所难免.有人讲,bug越多,说明程序员越伟大.这句话有它一定的道理. 因为从某方面讲,bug多了说明他的代码量也多. 言归正传,这里我记 ...

  4. python web开发——c5 图片上传 flask-uploads 云储存sdk

    坑1:上传图片时,py文件中@app.route('/upload/',methods = {'post','get'})中upload后如有斜杠,则postman中发送post时的网址中也要为upl ...

  5. RabbitMQ实现的RPC

    1.主要思路 1.生产者发布任务时,指定properties,告知消费者处理任务完毕之后,将结果存储到reply_to指定的Queue中,本次任务的id是correlation_id 2.消费者消费完 ...

  6. RabbitMQ和Kafka对比以及场景使用说明

    我目前的项目最后使用的是RabbitMQ,这里依然是结合网上大神们的优秀博客,对kafka和rabbitmq进行简单的比对.最后附上参考博客. 1.架构模型 rabbitmq RabbitMQ遵循AM ...

  7. Linq基础知识小记二

    书写Linq查询有两种方法,第一种是通过方法语法(也就是扩展方法),第二种是查询表达式语法. 1.方法语法 方法语法就是通过扩展方法和Lambda表达式来创建查询 (1).链式查询 这种查询方式很多语 ...

  8. 【Java并发编程】:使用synchronized获取互斥锁

    在并发编程中,多线程同时并发访问的资源叫做临界资源,当多个线程同时访问对象并要求操作相同资源时,分割了原子操作就有可能出现数据的不一致或数据不完整的情况,为避免这种情况的发生,我们会采取同步机制,以确 ...

  9. 软件魔方制作系统启动盘并安装win7系统

    不多说,直接上干货! 推荐软件:软件魔方 http://mofang.ruanmei.com/ 这里,我想说的是,这个软件来制作系统盘,是真的方便和好处多多.具体我不多说,本人也是用过其他的如大白菜等 ...

  10. Unable to handle kernel NULL pointer dereference at virtual address 00000000问题的解决

    今天在编译好内核模块后,安装内核模块memdev.ko的时候,出现了Unable to handle kernel NULL pointer dereference at virtual addres ...