初探JS正则表达式
var patern = /java/ig; //文本模式
var patern = new RegExp(/java/, 'ig'); //对象模式
注:ES3中RegExp共用一个对象,ES5每次调用产生一个新对象
字符
|
匹配
|
字母和数字
|
自身 |
\o
|
NUL字符(\u0000)
|
\t
|
制表符(\u0009)
|
\n
|
换行符(\u000A)
|
\v
|
垂直制表符(\u000B)
|
\f
|
换页符(\u000C)
|
\r
|
回车符(\u000D)
|
\xnn
|
十六进制数,nn指拉丁字符
|
\uxxxxx
|
十六进制数,xxxx指unicode字符 |
\cX
|
控制字符^X
|
2.2字符类
字符
|
匹配
|
[...]
|
方括号内的任意字符
|
[^...]
|
除方括号外的任意字符 |
.
|
除换行符和其他unicode行终止符外的任意字符
|
\w
|
任何ASCII字符组成的单词,等价于[a-zA-Z0-9]
|
\W
|
非ASCII字符组成的单词,等价于[^a-zA-Z0-9]
|
\s
|
任何unicode空白符
|
\S
|
任何非unicode空白符
|
\d |
任何ASCII数字,等价于[0-9]
|
\D
|
非ASCII数字,等价于[^0-9] |
[\b]
|
退格直接量
|
2.3重复
字符
|
含义 |
{n,m}
|
匹配前一项,至少n次,不超过m次,[n,m)
|
{n,} |
匹配前一项,至少n次或者更多次,[n,无穷)
|
{n}
|
匹配前一项n次,==n
|
?
|
匹配前一项,0到1次,0||1 |
+
|
匹配前一项,1到多次,[1,无穷)
|
*
|
匹配前一项,0次到多次,[0,无穷) |
备注:非贪婪的重复,只需要在重复后面加一个?即可,目标是尽可能少的匹配。
2.4选择、分组和引用字符
字符
|
含义
|
|
|
选择,匹配左边或者右边的表达式
|
(...)
|
分组,可使用重复符进行修饰(记忆) |
(?:...)
|
只组合,不记忆 |
\n |
和第n组,第一次匹配的字符相匹配
|
2.5指定匹配位置,即锚字符
字符 | 含义 |
^
|
匹配字符串的开头 |
$ |
匹配字符串的结尾
|
\b |
匹配单词的边界符
|
\B
|
匹配单词非边界符 |
(?=p)
|
正向先行断言,都与p匹配但不包含 |
(?!p)
|
负向先行断言,都与p不匹配
|
2.6修饰符
字符
|
含义
|
i
|
不区分大小写
|
m
|
多行匹配模式
|
g
|
全局匹配
|
3.用于模式匹配的方法,包含String和RegExp对象
方法名称
|
使用说明
|
String.search(patern) |
返回第一个与之匹配的子串起始位置,如果找不到就返回-1
|
String.replace(patern, newStr)
|
将匹配的字符串替换成newStr,newStr也可以是动态替换字符串的函数
|
String.match(patern)
|
返回一个有匹配结果组成的数组,如果非全局匹配,第一个是匹配的字符串,后面为分组值
|
String.split(partern)
|
根据规则分割成数组
|
3.2RegExp提供两个方法
方法名称
|
使用说明
|
RegExp.exec(string)
|
和String的match方法返回值相同,RegExp.lastIndex是全局匹配的下一个匹配项的起始位置
|
RegExp.test(string)
|
当exec不为null时,返回true
|
//获取URL参数
var url = "http://www.cnblogs.com?func=window.getUserName&errno=0";
var splitUrlReg = /\?(\w+)=([^&=]*)(?:&(\w+)=([^&=]*))+/;;
var paramArr = url.match(splitUrlReg);
console.log(paramArr);
//["?func=window.getUserName&errno=0", "func", "window.getUserName", "errno", "0", index: 22, input: "http://www.cnblogs.com?func=window.getUserName&errno=0", clone: function]
初探JS正则表达式的更多相关文章
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
- 从273二手车的M站点初探js模块化编程
前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...
- 使用外部web组件-----easyUI、jQueryUI、Bootstrap、js正则表达式
1.使用外部web组件,以Bootstrap为例 <head> <link rel='stylesheet' href='bootstrap-3.3.0-dist/dist/css ...
- js正则表达式图形化工具-rline
github地址:https://github.com/finance-sh/rline 在线demo: http://lihuazhai.com/demo/test.html 这是一个js正则表达式 ...
- Python之路-(js正则表达式、前端页面的模板套用、Django基础)
js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- JS正则表达式大全
转自:http://wenku.baidu.com/link?url=3y930kC7F6D3wQdMjQ3fVDmiA9Wfebs_QK0UB3N3mFaEoKg4ytZORPopxufeYA6si ...
- js正则表达式replace里有变量的解决方法用到RegExp类
一直比较害怕使用正则表达式,貌似很深奥很复杂的样子,所以在用js操作字符串的时候,我最多使用的是replace.split.substring.indexOf等函数,这些函数有时候需要多次叠加使用,但 ...
- JS正则表达式验证账号、手机号、电话和邮箱
JS正则表达式验证账号.手机号.电话和邮箱 效果体验:http://keleyi.com/keleyi/phtml/jstexiao/15.htm 验证帐号是否合法 验证规则:字母.数字.下划线组成, ...
- 初识JS正则表达式
初识JS正则表达式 看到的使用的正则表达式练习:http://www.cnblogs.com/wenanry/archive/2010/09/06/1819552.html PS:本文参考李炎恢JS笔 ...
随机推荐
- Java高级软件工程师面试考纲
如果要应聘高级开发工程师职务,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构.算法.网络.操作系统等知识.因此本文不会讲解具体的技术,笔者综合自己应聘各大公司的经历,整理了一份大公司对 ...
- hdu 5396 Expression(区间dp)
Problem Description Teacher Mai has n numbers a1,a2,⋯,anand n−1 operators("+", "-&quo ...
- 利用Excel批量高速发送电子邮件
利用Excel批量高速发送电子邮件,分两步: 1. 准备待发送的数据: a.) 打开Excel,新建Book1.xlsx b.) 填入以下的内容, 第一列:接收人,第二列:邮件标题,第三列:正文,第四 ...
- 【leetcode】Merge Sorted Array(合并两个有序数组到其中一个数组中)
题目: Given two sorted integer arrays A and B, merge B into A as one sorted array. Note: You may assum ...
- javasscript学习笔记 之 数组学习二 数组的所有方法
1.push() 和 pop() 栈的方法 后进先出 push() 该方法是向数组末尾添加一个或者多个元素,并返回新的长度. push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返 ...
- correlated subquery and non-correlated subquery
子查询:嵌套在其他查询中的查询称之. 子查询又称内部,而包含子查询的语句称之外部查询(又称主查询). 所有的子查询可以分为两类,即相关子查询和非相关子查询 1>非相关子查询是独立于外部查询的子查 ...
- CSS基础知识笔记(一)
css 样式由选择符和声明组成,而声明又由属性和值组成: 选择符: 又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素(如ol)不会受到影响. 声 ...
- DIV+CSS 自适应布局
两栏布局,左边定宽200px,右边自适应.如何实现?我的第一个反应就是:用flex伸缩盒呀,然后balabala...说完之后,面试官说,还有没有别的方法?flex有些浏览器不支持嗯...我愣了一下, ...
- JavaScript操作剪贴板(转)
IE是第一个支持与剪贴板相关的事件,以及通过JavaScript访问剪贴板数据的浏览器.IE的实现成为了某种标准,不仅Safari 2.Chrome和Firefox 3也都支持类似的事件和剪贴板(Op ...
- android 5.0 受欢迎的API简介
android 5.0 作为系统的一次重大升级,给用户和开发者带来了全新的体验.Material Design不但在视觉和操作上更胜一筹,扩展UI工具包同时也引入了大量新的API. 1. 3D视图和实 ...