JavaScript-RegExp 正则表达式
来源:互联网 发布:用js做轮播图 编辑:程序博客网 时间:2024/05/22 06:15
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
它不限于任何语言
正则表达式-百度百科
下面对正则进简要介绍:
方括号
方括号
([])
用于正则表达式的上下文中时有特殊意义,用来查找一系列字符
解读:
[0-9a-zA-Z\_]
可以匹配一个数字、字母或者下划线;[0-9a-zA-Z\_]+
可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100'
,'0_Z'
,'js2015'
等等;[a-zA-Z\_\$][0-9a-zA-Z\_\$]*
可以匹配由字母或下划线、$
开头,后接任意个由一个数字、字母或者下划线、$
组成的字符串[a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}
更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。
量词
方括号括起来的字符序列或单个字符出现的频率或位置可以用一个特殊的符号来表示。每个特殊字符都有一个特定的含义。+、*、? 和 $ 符号都遵循一个字符序列模式
元字符
解读:
'00\d'
可以匹配'007'
,但无法匹配'00A'
;'\d\d\d'
可以匹配'010'
;'\w\w'
可以匹配'js'
;'js.'
可以匹配'jsp'
、'jss'
、'js!'
等等。
解读
\d{3}\-\d{3,8}
表达式
1、\d{3}
表示匹配三个数字,例如123
, 010
等
2、\-
表示匹配特殊字符-
3、\d{3,8}
表示3到8个数字,例如 1234567
综上所述:可以匹配 010-88888888
, 021-12345678
等
RegExp方法
JavaScript 中正则表达式的使用
RegExp() 构造函数定义
方式一
var pattern = new RegExp(pattern, attributes);
方式二
var patter = /pattern/attributes;
pattern:是一个字符串,指定了正则表达式的模式或其他正则表达式。
attributes:是一个可选的字符串,包含属性 “g”、”i” 和 “m”,分别用于指定全局匹配、区分大小写的匹配和多行匹配。
两种写法是一样的
实例:
var re1 = /ABC\-001/;var re2 = new RegExp('ABC\\-001');re1; // /ABC\-001/re2; // /ABC\-001/
如果使用第二种写法,因为字符串的转义问题,字符串的两个\\
实际上是一个\
。
RegExp对象的test()方法用于测试给定的字符串是否符合条件,返回 true 和 false
var re = /^\d{3}\-\d{3,8}$/;re.test('010-12345'); // truere.test('010-1234x'); // falsere.test('010 12345'); // false
切分字符串
'a b c'.split(' '); // ['a', 'b', '', '', 'c']
无法识别连续的空格,用正则表达式试试:
'a b c'.split(/\s+/); // ['a', 'b', 'c']
无论多少个空格都可以正常分割。加入,试试:
'a,b, c d'.split(/[\s\,]+/); // ['a', 'b', 'c', 'd']
再加入;试试:
'a,b;; c d'.split(/[\s\,\;]+/); // ['a', 'b', 'c', 'd']
分组
用()表示的就是要提取的分组(Group)
var re = /^(\d{3})-(\d{3,8})$/;re.exec('010-12345'); // ['010-12345', '010', '12345']re.exec('010 12345'); // null
全局搜索
JavaScript的正则表达式还有几个特殊的标志,最常用的是g,表示全局匹配:
var r1 = /test/g;// 等价于:var r2 = new RegExp('test', 'g');
全局匹配可以多次执行exec()方法来搜索一个匹配的字符串。当我们指定g标志后,每次运行exec(),正则表达式本身会更新lastIndex属性,表示上次匹配到的最后索引:
var s = 'JavaScript, VBScript, JScript and ECMAScript';var re=/[a-zA-Z]+Script/g;// 使用全局匹配:re.exec(s); // ['JavaScript']re.lastIndex; // 10re.exec(s); // ['VBScript']re.lastIndex; // 20re.exec(s); // ['JScript']re.lastIndex; // 29re.exec(s); // ['ECMAScript']re.lastIndex; // 44re.exec(s); // null,直到结束仍没有匹配到
- javascript 正则表达式RegExp
- JavaScript正则表达式 RegExp
- JavaScript-RegExp 正则表达式
- Javascript 正则表达式RegExp对象
- JavaScript RegExp 对象 正则表达式
- javaScript---- RegExp-常用正则表达式
- JavaScript正则表达式RegExp对象
- javascript正则表达式(RegExp类型)
- JS RegExp -- JavaScript 正则表达式
- 【JavaScript】RegExp 类型正则表达式
- JavaScript 正则表达式 RegExp 对象
- javascript 正则表达式RegExp.$n
- JavaScript - RegExp(正则表达式)
- JavaScript 正则表达式对象RegExp
- JavaScript RegExp (正则表达式对象)
- JavaScript RegExp正则表达式与replace
- Javascript RegExp正则表达式学习笔记
- JavaScript RegExp 正则表达式对象详细说明
- 不喜欢现在的工作,怎么办?
- 班长投票代码
- C++编程好习惯原则
- VTK之智能指针详解
- LeetCode OJ-34.Search for a Range
- JavaScript-RegExp 正则表达式
- RabbitMQ 学习笔记(六):RPC
- Unity单利模式模板
- Java 单例
- Java-Java常用的类、包以及接口
- tween.js一个平滑动效果的js动画库
- mybatis3教程
- C++的三个数组模板类
- 【数据库关系模型之关系代数】θ连接,等值连接和自然连接之间的差异