正则匹配符
[a-z] :匹配小写字母从a-z中的任一字符
[A-Z] :匹配大写字母从A-Z中的任一字符
[0-9] :匹配数字从0-9任一字符,相当于\d
[0-9a-z] :匹配数字从0-9或小写字母从a-z任一字符
[0-9a-zA-Z] :匹配数字从0-9,小写字母从a-z或者是大写字母从A-Z的任一字符
[abcd] :匹配字符abcd中的任一字符
[1234] :匹配数字1234中的任一字符
[^a-z] :匹配除小写字母从a-z以外的任一字符
[^0-9] :匹配除数字从0-9以外的任一字符
[^abcd] :匹配除abcd以外的任一字符
\d :匹配一个数字字符,用字符簇表示[0-9]
\D :匹配一个非数字字符,也可以使用字符簇[^0-9]或[^\d]来表示
\w :匹配包括下划线的任何单词字符,用字符簇[0-9a-zA-Z_]
\W :匹配任何非单词字符,[^0-9a-zA-Z_]或[^\w]
\s :匹配任何空白字符,空格、制表符、换行符都可以通过\s匹配
\S :匹配任何非空白字符,[^\s]
.(点号) :匹配除 "\n" 之外的任何单个字符
正则字符
$ :匹配输入字符串的结尾位置。
^ :匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。
() :标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。
* :匹配前面的子表达式零次或多次。
+ :匹配前面的子表达式一次或多次。
. :匹配除换行符 \n 之外的任何单字符。
[ :标记一个中括号表达式的开始。
? :匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
\ :将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。
{ :标记限定符表达式的开始。
| :指明两项之间的一个选择。
* :匹配前面的子表达式零次或多次。
+ :匹配前面的子表达式一次或多次。
? :匹配前面的子表达式零次或一次。
{n} n :是一个非负整数。匹配确定的 n 次。
{n,} n :是一个非负整数。至少匹配n 次。
{n,m} :m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。
正则表达式类型
/pattern/attributes
参数attributes是一个可选字符串,常用属性g和i,分别用于指定全局匹配和忽略大小写的匹配。
正则表达式方法
test()
检索字符串中的指定值,返回true或者false
var reg = /tongxue/;
var str = "gxtongxue is tongxue";
console.log(reg.test(str)); // true
exec()
检索字符串中的指定值,返回的值是被找到的值,如果没有发现匹配则返回null
var reg = /(tong)(xue)/; // ()里面是子表达式
var str = "gxtongxue is tongxue";
console.log(reg.exec(str));
search()
字符串查找,返回对应的位置值
var reg = /(tong)(xue)/;
var str = "gxtongxue is tongxue";
console.log(str.search(reg)); // 2
match()
字符串匹配
var reg = /第(\d+)章/;
var str = "第20章 第10章";
console.log(str.match(reg));
var reg = /第(\d+)章/g;
var str = "第20章 第10章";
console.log(str.match(reg)); // ["第20章", "第10章"]
replace()
字符串替换
var reg = /\d+/g;
var str = "第20章 第10章";
console.log(str.replace(reg,"几")); // 第几章 第几章
split()
字符串分割
var reg = /\d+/g;
var str = "第20章 第10章";
console.log(str.split(reg)); // ["第", "章 第", "章"]