正则表达式是描述字符模式的对象.正则表达式通常缩写为" regex "或" regexp ".
JavaScript RegExp 类表示正则表达式,String和RegExp定义了使用正则表达式在文本上执行强大的模式匹配和搜索和替换函数的方法.
正则表达式可以定义为 : 去;
var pattern = new RegExp(pattern,attributes); OR var pattern =/pattern/attributes;
该属性可以包含以下值的任意组合.
Sr.No | 属性&描述 |
---|---|
1 | G 全球匹配 |
2 | I 忽略大小写 |
3 | M Multiline;将开始和结束字符(^和$)视为多行(即匹配每行的开头或结尾(由\ n或\r分隔),而不仅仅是整个行的开头或结尾)输入字符串) |
4 | U Unicode;将模式视为一系列unicode代码点 |
5 | Y 粘性;仅匹配目标字符串中此正则表达式的lastIndex属性指示的索引(并且不会尝试与任何后续索引匹配) |
构造正则表达式
括号
括号([])具有特殊含义在正则表达式的上下文中使用时.它们用于查找一系列字符.
Sr.No | 表达式&描述 |
---|---|
1 | [...] 括号内的任何一个字符 |
2 | [^ ...] 任何一个不在括号内的字符 |
3 | [0-9] 它匹配从0到9的任何十进制数字 |
4 | [az] 它匹配任何字符,从小写 a 到小写 z |
5 | [AZ] 它匹配任何大写字母 A 到大写 Z |
6 | [aZ] 它匹配小写 a 通过大写 Z |
显示的范围以上是一般的;您还可以使用范围[0-3]匹配范围从0到3的任何十进制数字,或范围[bv]以匹配范围从b到v的任何小写字符.
量词
括号中的字符序列和单个字符的频率或位置可以用特殊字符表示.每个特殊字符都有特定的含义. +,*,?,和 $ 标志都跟随字符序列.
的序列的字符串
Sr.No | 表达式&描述 |
---|---|
1 | p + 它匹配任何包含至少一个 p 的字符串. |
2 | p * 它匹配任何包含零个或多个 p |
3 | p? 它匹配任何包含一个或多个的字符串p |
4 | p {N} 它匹配任何包含的字符串一系列 N p |
5 | p {2,3} 它匹配任何包含序列为2或thr的字符串ee p |
6 | p {2,} 它匹配任何包含至少两个 p |
7 | p $ 它匹配 p 末尾的任何字符串 |
8 | ^ p 它匹配 p 开头的任何字符串 |
9 | [^ a-zA-Z] 它匹配任何不包含任何字符的字符串,范围从 a 到 z 和 A 到 Z |
10 | pp 它匹配任何包含 p 的字符串,后跟任何字符串字符,接着是另一个 p |
11 | ^.{2} $ 它匹配任何包含两个字符的字符串 |
12 | < b>(.*) 它匹配< b>中包含的任何字符串和 |
13 | p(hp)* 它匹配任何包含 p 后跟零个或多个序列实例的字符串 hp |
字面字符
Sr.No | 字符&描述 |
---|---|
1 | 字母数字 本身 |
2 | \0 空字符(\ u0000) |
3 | \t 标签(\ uu99) |
4 | \n 换行符(\ u000A) |
5 | \v 垂直标签(\ u000B) |
6 | \f 表格Feed(\\ u000C) |
7 | \ r 回车(\ u000D) |
8 | \xnn 由十六进制数 nn指定的拉丁字符; 例如,\ x0A与 \ n 相同 |
9 | \uxxxx 由十六进制数 xxxx 指定的Unicode字符;例如,\ u0009与 \t 相同 |
10 | \cX 控制字符^ X;例如,\ cJ相当于换行符 \ n |
元字符
元字符只是一个字母字符,前面有反斜杠,用于赋予组合特殊含义.
例如,你可以使用'\d'元字符搜索一大笔钱:/([\d] + )000/.这里, \d 将搜索数字字符的任何字符串.
下表列出了一组可在PERL样式中使用的元字符正则表达式.
Sr.No | 字符&描述 |
---|---|
1 | . 单个字符 |
2 | \s 空格字符(空格,制表符,换行符) |
3 | \S 非空白字符 |
4 | \d 一个数字(0-9) |
5 | \D 非数字 |
6 | \w 一个单词字符(a -z,AZ,0-9,_) |
7 | \ W 非单词字符 |
8 | [\ b] 文字退格(特例) |
9 | [aeiou] 匹配给定集合中的单个字符 |
10 | [^ aeiou] 匹配给定集合之外的单个字符 |
11 | (foo | bar | baz) 匹配指定的任何替代方案 |
RegExp属性
$ b $测试正则表达式b
Sr.No | 属性&描述 |
---|---|
1 | RegExp.prototype.flags 包含标志的字符串RegExp对象 |
2 | RegExp.prototype.global 是否针对字符串中的所有可能匹配测试正则表达式,或仅针对第一个 b |
3 | RegExp.prototype.ignoreCase 在字符串中尝试匹配时是否忽略大小写 |
4 | RegExp.prototype.multiline 是否跨多行搜索字符串 |
5 | RegExp.prototype.source 模式的文本 |
6 | RegExp.prototype.sticky 是否是搜索是粘性的 |
RegExp方法
Sr.No | Method&描述 |
---|---|
1 | RegExp.prototype.exec() 执行搜索匹配项在其字符串参数 |
2 | RegExp.prototype.test() 在其字符串参数中测试匹配 |
3 | RegExp.prototype. match() 执行与给定字符串的匹配并返回匹配结果 |
4 | RegExp.prototype.replace() 用新的子字符串替换给定字符串中的匹配项 |
5 | RegExp.prototype.search() 搜索给定字符串中的匹配并返回字符串中找到的模式的索引 |
6 | RegExp.prototype.split() 拆分通过将字符串分成子串将字符串放入数组中 |
7 | RegExp.prototype.toString( ) 返回表示指定对象的字符串.覆盖theObject.prototype.toString()方法 |