js正则

简介
修饰符

修饰符用于执行区分大小写和全局匹配:

修饰符

描述

i

执行对大小写不敏感的匹配。

g

执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

m

执行多行匹配。

方括号

方括号用于查找某个范围内的字符:

表达式

描述

[abc]

查找方括号之间的任何字符。

[^abc]

查找任何不在方括号之间的字符。

[0-9]

查找任何从 0 至 9 的数字。

[a-z]

查找任何从小写 a 到小写 z 的字符。

[A-Z]

查找任何从大写 A 到大写 Z 的字符。

[A-z]

查找任何从大写 A 到小写 z 的字符。

[adgk]

查找给定集合内的任何字符。

[^adgk]

查找给定集合外的任何字符。

(red|blue|green)

查找任何指定的选项。

元字符

元字符(Metacharacter)是拥有特殊含义的字符:

元字符

描述

.

查找单个字符,除了换行和行结束符。

w

查找单词字符。

W

查找非单词字符。

d

查找数字。

D

查找非数字字符。

s

查找空白字符。

S

查找非空白字符。



匹配单词边界。

B

匹配非单词边界。

查找 NULL 字符。

查找换行符。

f

查找换页符。

查找回车符。

查找制表符。

v

查找垂直制表符。

xxx

查找以八进制数 xxx 规定的字符。

xdd

查找以十六进制数 dd 规定的字符。

uxxxx

查找以十六进制数 xxxx 规定的 Unicode 字符。

量词

量词

描述

n+

匹配任何包含至少一个 n 的字符串。

例如,/a+/ 匹配 "candy" 中的 "a","caaaaaaandy" 中所有的 "a"。

n*

匹配任何包含零个或多个 n 的字符串。

例如,/bo*/ 匹配 "A ghost booooed" 中的 "boooo","A bird warbled" 中的 "b",但是不匹配 "A goat grunted"。

n?

匹配任何包含零个或一个 n 的字符串。

例如,/e?le?/ 匹配 "angel" 中的 "el","angle" 中的 "le"。

n{X}

匹配包含 X 个 n 的序列的字符串。

例如,/a{2}/ 不匹配 "candy," 中的 "a",但是匹配 "caandy," 中的两个 "a",且匹配 "caaandy." 中的前两个 "a"。

n{X,}

X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配。

例如,/a{2,}/ 不匹配 "candy" 中的 "a",但是匹配 "caandy" 和 "caaaaaaandy." 中所有的 "a"。

n{X,Y}

X 和 Y 为正整数。前面的模式 n 连续出现至少 X 次,至多 Y 次时匹配。

例如,/a{1,3}/ 不匹配 "cndy",匹配 "candy," 中的 "a","caandy," 中的两个 "a",匹配 "caaaaaaandy" 中的前面三个 "a"。注意,当匹配 "caaaaaaandy" 时,即使原始字符串拥有更多的 "a",匹配项也是 "aaa"。

n{X,}

匹配包含至少 X 个 n 的序列的字符串。

n$

匹配任何结尾为 n 的字符串。

^n

匹配任何开头为 n 的字符串。

?=n

匹配任何其后紧接指定字符串 n 的字符串。

?!n

匹配任何其后没有紧接指定字符串 n 的字符串。

RegExp 对象方法

方法

描述

FF

IE

compile

编译正则表达式。

1

4

exec

检索字符串中指定的值。返回找到的值,并确定其位置。

1

4

test

检索字符串中指定的值。返回 true 或 false。

1

4

支持正则表达式的 String 对象的方法

方法

描述

FF

IE

search

检索与正则表达式相匹配的值。返回下标,找不到返回-1

1

4

match

找到一个或多个正则表达式的匹配。返回数组,与g有关,不匹配返回null

1

4

replace

替换与正则表达式匹配的子串。返回替换后的字符串

1

4

split

把字符串分割为字符串数组。返回数组

   
RegExp对象
语法

var patt=new RegExp(pattern,modifiers);

或者更简单的方式:

var patt=/pattern/modifiers;

  • pattern(模式) 描述了表达式的模式
  • modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配
    • 修饰符用于执行区分大小写和全局匹配:

修饰符

描述

i

执行对大小写不敏感的匹配。

g

执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

m

执行多行匹配。

注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 )。比如,以下是等价的:

var re = new RegExp("\w+");
var re = /w+/;
test()方法

test()方法

语法

RegExpObject.test(string)

参数

描述

string

必需。要检测的字符串。

列子

如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false

var s = new RegExp("bc");

         document.write(s.test("abcdefg"));//true

         document.write(s.test());//false

  document.write("<br>----------------------");

            var s2 = /d+/;

            document.write(s2.test("abcdef12"));//true

            document.write(s2.test("abcdef"));//false

exec()方法

exec() 方法用于检索字符串中的正则表达式的匹配。

如果字符串中有匹配的值返回该匹配值,否则返回 null。

语法

RegExpObject.exec(string)

var reg3 = new RegExp("b");

            document.write(reg3.exec("abc"));//b

            document.write(/hello/g.exec("hello chenrd"));//hello

            document.write(/hello/g.exec(" chenrd"));//null

compile 方法

把正则表达式编译为内部格式,从而执行得更快。

rgExp.compile(pattern, [flags])

参数

rgexp

必选项。正则表达式对象的一个例子。可以是变量名或文字。

pattern

必选项。字符串表达式,它包含要被编译的正则表达式模式。

flags

可选项。可以组合使用,可用的标志有:

  • g (全局搜索所有存在的 pattern)
  • i (忽略事件)
  • m (多行搜索)

说明

compile 方法把 pattern 转换为内部的格式,从而执行得更快。例如,这使得可以在循环中更有效地使用正则表达式。当重复使用相同的表达式,那么编译过的正则表达式使执行加速。然而,如果正则表达式改变了,这种编译毫无益处。

示例

下面的例子举例说明了 compile 方法的用法:

function CompileDemo(){
   var rs;
   var s = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp"
   // 只为大写字母创建正则表达式。
   var r = new RegExp("[A-Z]", "g");
   var a1 = s.match(r)              // 查找匹配。返回所有大写的字母以逗号隔开
   // 只为小写字母编译正则表达式。
   r.compile("[a-z]", "g");
   var a2 = s.match(r)              // 查找匹配。
   return(a1 + "
" + a2;
}

Js中RegExp.$1是什么意思

RegExp 是javascript中的一个内置对象。为正则表达式。

RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串,以此类推,RegExp.$2,RegExp.$3,..RegExp.$99总共可以有99个匹配

给你看了例子就知道了

var r= /^(d{4})-(d{1,2})-(d{1,2})$/; //正则表达式 匹配出生日期(简单匹配)    

r.exec('1985-10-15');

s1=RegExp.$1;

s2=RegExp.$2;

s3=RegExp.$3;

alert(s1+" "+s2+" "+s3)//结果为1985 10 15

原文地址:https://www.cnblogs.com/rdchen/p/10784356.html