javascript中的正则表达式:

正则表达式的字符类:
字符 匹配
[…] 括号内的任意字符
[^…] 不在方括号内的任意字符
. 除 换行符和其他Unicode行终止符的任意字符
\w 任何Ascii码组成的单词,等价于[a-zA-Z0-9]
\W 任何不是Ascii码组成的单词,等价于[^a-zA-Z0-9]
\s 任何Unicode空白符字符
\S 任何非Unicode空白符的字符.
\d 任何ASCII数字 [0-9]
\D 任何非ASCII数字的字符 [^0-9].

[\s\d] 匹配任意空白符或数字

正则表达式的重复字符语法
字符 含义
{n, m} 匹配前一项至少n次,但不能超过m次。
{n, } 匹配前一项n次或者更多次
{n} 匹配前一项n次
? 匹配前一项0次或者1次, 也就是说前一项是可选的, 等价于 {0, 1}

  • 匹配前一项1次或者多次,等价于 {1,}
  • 匹配前一项0次或者多次, 等价于{0,}

例如:
/\d{2,4}/ 匹配2-4个数字
/\w{3}\d?/ 精确匹配三个单词和一个可选的数字
/\s+java\s+/ 匹配前后带有一个或多个空格的字符串 “Java”。
/[^(]*/ 匹配一个或者多个非左括号的字符。

非贪婪的重复:
“??”
“+?”
“*?”
{1,5}?

/a+?b/ 匹配尽可能少的a和一个b.

| 选择,匹配的是该字符左边的表达式或右边的子表达式。
(…) 组合, 讲几个项组合作为一个单元,这个单元可以通过“*”, “+", “?” 或者 ”|"等符号加以修饰。
(?:…) 只组合, 把项组合合到一个单元,但不记忆与该组相匹配的字符。
\n 和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式。
^
$
\b 匹配一个单词的边界,
\B 匹配非单词边界的位置
(?=p) 零宽正向先行断言,要求接下来的字符与p匹配,但不能包括匹配p的那些字符。
(?!p) 零宽负向先行断言,要求接下来的字符不与p匹配

正则表达式修饰符:
字符 含义
i 执行不区分大小写的匹配
g 执行一个全局匹配。
m 多行匹配模式,

用于模式匹配的String 方法:
search() 举例:
“JavaScript”.search(/script/i);
4
replace() 举例:

split() 举例:
“1, 2, 3, 4, 5”.split(/\s*,\s*/);
(5) [“1”, “2”, “3”, “4”, “5”]

match()举例:
var url = /(\w+)😕/([\w.]+)/(\S*)/;

var result = myblock.match(url);

result
(4) [“”, “http”, “www..net”, “xzhao1”, index: 17, input: “visit my blog at ”, groups: undefined]
result[1]
“http”
result[2]
“www..net”
result[3]
“xzhao1”