javascript 正则表达式总结
为什么要使用正则表达式
- /^1\d{10}$/
复制代码
正则表达式的生成
- 调用RegExp对象的构造函数
- var reg = new RegExp('^[a-z]+[0-9][align=left][font=微软雅黑][size=3][color=#000000][backcolor=white]其中第一个参数是匹配模式,第二个参数是可选参数(g, i, m),分别用于指定全局匹配、区分大小写的匹配和多行匹配。这种方式会在正则表达式运行时编译(runtime compilation)。如果你知道正则表达式模式将会改变,或者你事先不知道什么模式,而是从另一个来源获取,如用户输入,这些情况都可以使用构造函数。[/backcolor][/color][/size][/font][/align]
- [*][align=left][font=微软雅黑][size=3][color=#000000][backcolor=white]使用正则表达式字面值,将匹配模式封闭在两个斜杠中[/backcolor][/color][/size][/font][/align][code]var reg = /^[a-z]+[0-9]$/gi
复制代码
当表达式被赋值时,字面量形式提供正则表达式的编译(compilation),当正则表达式保持为常量时一般使用字面量方式。例如当你在循环中使用字面量构造一个正则表达式时,正则表达式不会在每一次迭代中都被重新编译(recompiled)
正则表达式的组成
|
字符
|
含义
|
| . | 匹配除了换行符(n)以外的所有字符 |
| w | 匹配字母,数字,或者汉字 |
| W | 匹配除了字母,数字,汉字以外的其他字符 |
| d | 匹配数字 |
| D | 匹配除了数字以外的其他字符 |
| s | 匹配任意的空白符(f, n, r, t, v) |
| S | 匹配空白符以外的任意字符 |
| b | 匹配单词的开始或者结束 |
| B | 匹配单词的非开始或者结束 |
| ^ | 匹配行首 |
| $ | 匹配行尾 |
- \{
复制代码
|
字符
|
含义
|
| * | 匹配零次至多次 |
| + | 匹配一次至多次 |
| ? | 匹配零次或一次 |
| {2,} | 至少匹配两次 |
| {10} | 匹配10次 |
| {{2, 8}} | 至少匹配两次之多匹配八次 |
- 'fasfagxfasdfyfasfz'.split(/[xyz]/) //["fasfag", "fasdf", "fasf", ""]
复制代码
- 'xaxbycz'.split(/[^xyz]/) //["x", "x", "y", "z"]
复制代码
- /c|d/.test('af') // false
- /c|d/.test('ad') // true
复制代码
- /(cd){1,}$/.test('cdcd') //true
复制代码
贪婪模式和非贪婪模式
- 'ccccccd'.match(/c+/) //["ccccc"], 贪婪模式, 捕获所有
- 'ccccccd'.match(/c+?/) //["c"], 非贪婪模式, 只捕获到第一
复制代码
捕获分组
- "万里碧空飘着朵朵白云".replace(/(万里碧空)飘着朵朵白云/, '$1没有一朵白云')
复制代码
- 'www.bai.bai.com'.replace(/([a-z]+)\.\1/, '$1') // www.bai.com
复制代码
- /^(?:\d+)/
复制代码
正则表达式的方法
- /^\d[a-zA-Z]{3}$/.test('1aac') // true
复制代码
- /^\d[a-zA-Z]{3}$/.exec('1aac') // ["1aac"]
复制代码
String可以使用正则表达式的方法
- 'a12b2334c34'.search(/\d{4}/) // 4
复制代码
- 'a12b2334c34'.match(/\d{4}/) // ["2334"]
复制代码
- 'a12b2334c34'.replace(/\d{4}/, 'cccc') // "a12bccccc34"
复制代码
- 'a12b2334c34'.split(/\d{4}/) // ["a12b", "c34"]
复制代码
断言
- /f(?=234)/.test('123abcf234acd') //true
复制代码
- /f(?!234)/.test('123abcf234acd') //false
复制代码
常用的正则表达式
- ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
复制代码
- [a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
复制代码
- (?!^[0-9]+$)(?!^[A-z]+$)(?!^[^A-z0-9]+$)^[^\s\u4e00-\u9fa5]{6,16}$
复制代码
- [1-9]d{5}(?!d)
复制代码
- ^1\d{10}$
复制代码
- ^[\u4e00-\u9fa5]{0,}$
复制代码
javascript 正则表达式总结的更多相关文章
- JavaScript正则表达式,你真的知道?
一.前言 粗浅的编写正则表达式,是造成性能瓶颈的主要原因.如下: var reg1 = /(A+A+)+B/; var reg2 = /AA+B/; 上述两个正则表达式,匹配效果是一样的,但是,效率就 ...
- 【JS】javascript 正则表达式 大全 总结
javascript 正则表达式 大全 总结 参考整理了一些javascript正则表达式 目的一:自我复习归纳总结 目的二:共享方便大家搜索 微信:wixf150 验证数字:^[0-9]*$ 验证n ...
- 理清JavaScript正则表达式--上篇
在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...
- 理清JavaScript正则表达式--下篇
紧接:"理清JavaScript正则表达式--上篇". 正则在String类中的应用 类String支持四种利用正则表达式的方法.分别是search.replace.match和s ...
- JavaScript正则表达式详解(一)正则表达式入门
JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- Python自动化 【第十八篇】:JavaScript 正则表达式及Django初识
本节内容 JavaScript 正则表达式 Django初识 正则表达式 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- JavaScript正则表达式下——相关方法
上篇博客JavaScript 正则表达式上——基本语法介绍了JavaScript正则表达式的语法,有了这些基本知识,可以看看正则表达式在JavaScript的应用了,在一切开始之前,看看RegExp实 ...
- JavaScript 正则表达式上——基本语法
定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...
- 正则表达式入门教程&&经典Javascript正则表达式(share)
前言 例子: ^.+@.+\\..+$ 这样的代码曾经多次把我自己给吓退过.可能很多人也是被这样的代码给吓跑的吧.继续阅读本文将让你也可以自由应用这样的代码. 正文 教程:正则表达式30分钟入门教程 ...
随机推荐
- CodeForces - 95B(DFS)
题目链接:http://codeforces.com/problemset/problem/95/B 题目大意:给你一个正整数n (1 ≤ n ≤ 10100000),求不大小于它的超级幸运数字(超级 ...
- hihocoder--1384 -- Genius ACM (倍增 归并)
题目链接 1384 -- Genius ACM 给定一个整数 m,对于任意一个整数集合 S,定义“校验值”如下:从集合 S 中取出 m 对数(即 2*M 个数,不能重复使用集合中的数,如果 S 中的整 ...
- CentOS6.5安装JDK1.8
1.查看Linux自带的JDK是否已安装(如果安装则卸载CentOS已安装的低版本) 安装好的CentOS会自带OpenJdk,用命令 java -version,会有下面的信息: java -ver ...
- css 圆形头像
方法一:背景图片(推荐) 好处是,图片长宽不等的情况下图片不会变形 .ui-photo { width: 100px; height: 100px; background: url("img ...
- Linux下Chrome/Chromium窗口边框有白线
原因 窗口边框有白线是因为没有开启使用系统边框和标题栏 解决方法 勾选菜单-设置-外观-使用系统标题栏和边框 效果展示
- hdu5306 Explosion
题目链接 题意 有n个房间,每个房间里面有若干把钥匙,每把钥匙可以打开对应的一扇门.如果手中没有钥匙,就要随机轰炸一个房间来打开这个房间.如果有钥匙,就要去打开这些房间.问期望轰炸次数是多少. 思路 ...
- configure - 源代码安装的第一步
configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系 configure有许多参数可配,具体参见./configure --help ...
- 老项目用webpack中文乱码问题解决记录
有个很久(有多久呢,你还记得jquery1.6的年代吗...)的项目需要新加一些功能,又想使用新的生产力工具比如说webpack,es6,vue神马的.原来的项目整体都是用GBK编码的,这特么...坑 ...
- appium在不同类中使用的是同一个session
要这么做的起因: 测试testng框架的时候,不同类之间可以按照顺序执行,不会互相干扰.但是换成了appium,在A类中启动了session,初始化或者一些数据我仍然要用之前的session,那就不行 ...
- C#Windows服务程序安装常见问题解决方法
C#Windows服务程序安装是如何的呢?让我们开始吧: C#Windows服务程序安装1. 在服务程序的是设计窗体中,点击右键“添加安装程序”,添加服务安装程序.否则,安装时会出现如下 错误: 正在 ...