概述

正则表达式是什么

正则表达式(RegularExpression):由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则的表达式。
正则表达式常用在一段文本中搜索、匹配或替换特定形式的文本。比如:词语出现频率统计、验证字符串是否符合邮箱格式、屏蔽一篇帖子中的限制性词语等。

创建正则表达式

/*
    1.字面量/直接量方式
      var 变量名 = /pattern/attributes
      * pattern - 称为模式,用于定义正则表达式的内容
      * attributes - 称为修饰符,用于定义正则表达式的行为
 */
var reg = /123456789/i;
/*
    2.构造函数方式
      var 变量名 = new RegExp(pattern [, attributes])
      * pattern - 称为模式,用于定义正则表达式的内容
      * attributes - 称为修饰符,用于定义正则表达式的行为
 */
var reg = new RegExp('123456789', 'i');

pattern参数:被称为模式,可以使任何简单或复杂的正则表达式,包含字符类、限定符、分组、向前查找以及反向引用等。
attributes参数:被称为修饰符,用于表明正则表达式的行为。

符号

直接量字符

正则表达式中的所有字母和数字都是按照字面含义进行匹配的。JavaScript正则表达式语法也支持非字母的字符匹配,这些字符需要通过反斜线作为前缀进行转义。

clipboard.png

字符类

将直接量字符单独放进方括号内就组成了字符类。一个字符可以匹配它所包含的任意字符。由于某些字符类非常常用,JavaScript的正则表达式中,使用特殊转义字符表示他们。

clipboard.png

var str = 'king';

// 正则表达式的内容中定义规则 -> 验证的内容是否包含规则
// var reg = /123456789/;

// 正则表达式的内容中定义规则 -> 验证的内容匹配任何字符即可
var reg = /[0123456789]/;
var reg = /[\d]/;
var reg = /[0-9]/;

var reg = /[a-zA-Z]/;

var result = reg.test(str);
console.log(result);

重复

在JavaScript中的正则表达式用来描述任意多位的数字,或者描述由三个字母和一个数字构成的字符串时,可以使用字符重复耳钉标记。

clipboard.png

var str = 'wolong124xue3yuan';
/*
    {n, m} - 表示字符类中任意字符出现的次数
    * n - 表示至少出现n次(包含n次)
    * m - 表示至多出现m次(包含m次)
    * 注意 - 出现的次数必须是连续的
 */
var reg = /[0-9]{3,5}/;
var result = reg.test(str);
console.log(result);

匹配指定的位置

正则表达式中的多个元素才能够匹配字符串的一个字符,这些元素称之为正则表达式的锚。因为它们将模式定位在搜索字符串的特定位置上。

clipboard.png

常用两中‘^’和‘$’一个表示从匹配输入的开始,另一个表示 从匹配输入的结束。

var str = '12a45';

// 表示以什么开始的
// var reg = /^[0-9]{3,5}/;
// 表示以什么结束的
// var reg = /[0-9]{3,5}$/;
// 表示匹配内容的长度只能为至少n次,至多m次,而且内容必须与字符类匹配
var reg = /^[0-9]{3,5}$/;

var result = reg.test(str);
console.log(result);

// 长度为6-16位的数字或字母
/^[0-9a-zA-Z]{6,16}$/

修饰符

正则表达式的修饰符,用于说明高级匹配模式的规则。修饰符是放在“/”符号后面的,JavaScript支持三个修饰符
1.i:不区分大小写搜索。
2.g:全局搜索。
3.m:多行搜索.
代码示例:

var str = 'wolongxueyuan';

var reg = /^[A-Z]{8,16}$/i;
var result = reg.test(str);
console.log(result);

对象

创建RegExp对象

JavaScript可以通过引用类型RegExp创建正则表达式对象
参数:
1.pattern参数:被称为模式,可以使任何简单或复杂的正则表达式,包含字符类、限定符、分组、向前查找以及反向引用等。
2.attributes参数:被称为修饰符,用于表明正则表达式的行为。
代码示例

var arr = new RegExp(pattern,attributes);

RegExp对象的属性

clipboard.png

RegExp对象的方法

RegExp独享的方法有三种:
1.compile():编译/重新编写正则表达式,将pattern转换为每部格式,加快执行速度。
2.exec():检索字符串中指定的值。返回找到的值,并确定其位置;影响lastlndex属性的值。
3.test():检索字符串中指定的值。返回true或false;影响lastlndex属性的值。


武文佳
14 声望5 粉丝