概念
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE)。
作用
正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
创建
(1)字面值
//字面值
var regexp =/^\d+$/; //表示匹配以数字开头以数字结尾的字符串
alert(regexp.test("asedfasfd"));
(2)构造函数
//构造函数
var regexp=new RegExp("^\\d+$");
alert(regexp.test("asedfasfd"));
区别
(1)字面量创建方式不能进行字符串拼接,实例创建方式可以
var regParam = 'sadf';
var reg1 = new RegExp(sadf+'a');
var reg2 = /rdfd/;
console.log(reg1); // /sadfa/
console.log(reg2); // /rdfd/
(2)字面量创建方式特殊含义的字符不需要转义,实例创建方式需要转义
var reg1 = new RegExp('\d'); // /d/
var reg2 = new RegExp('\\d') // /\d/
var reg3 = /\d/;
元字符
代表特殊含义的元字符
\d : 0-9之间的任意一个数字 \d只占一个位置
\w : 数字,字母 ,下划线 0-9 a-z A-Z _
\s : 空格或者空白等
\D : 除了\d
\W : 除了\w
\S : 除了\s
. : 除了\n之外的任意一个字符
\ : 转义字符
| : 或者
() : 分组
\n : 匹配换行符
\b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数
^ : 限定开始位置 => 本身不占位置
$ : 限定结束位置 => 本身不占位置
[a-z] : 任意字母 []中的表示任意一个都可以
[^a-z] : 非字母 []中^代表除了
[abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符
代表次数的量词元字符
* : 0到多个
+ : 1到多个
? : 0次或1次 可有可无
{n} : 正好n次;
{n,} : n到多次
{n,m} : n次到m次
表达式
[]:可在[]写入范围
[^abc]:开头为abc
[0-9]:范围0-9
[a-z]:范围a-z
[A-Z]范围A-Z
[A-z]范围A-Z,a-z
|:表示或