JavaScript面向对象编程——RegExp类型
概述
正则表达式是什么
正则表达式(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正则表达式语法也支持非字母的字符匹配,这些字符需要通过反斜线作为前缀进行转义。
字符类
将直接量字符单独放进方括号内就组成了字符类。一个字符可以匹配它所包含的任意字符。由于某些字符类非常常用,JavaScript的正则表达式中,使用特殊转义字符表示他们。
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中的正则表达式用来描述任意多位的数字,或者描述由三个字母和一个数字构成的字符串时,可以使用字符重复耳钉标记。
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);
匹配指定的位置
正则表达式中的多个元素才能够匹配字符串的一个字符,这些元素称之为正则表达式的锚。因为它们将模式定位在搜索字符串的特定位置上。
常用两中‘^’和‘$’一个表示从匹配输入的开始,另一个表示 从匹配输入的结束。
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对象的属性
RegExp对象的方法
RegExp独享的方法有三种:
1.compile():编译/重新编写正则表达式,将pattern转换为每部格式,加快执行速度。
2.exec():检索字符串中指定的值。返回找到的值,并确定其位置;影响lastlndex属性的值。
3.test():检索字符串中指定的值。返回true或false;影响lastlndex属性的值。