JavaScript正则表达式
一、正则概述
- 什么是正则?
- 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
- 正则对象声明
- 使用new关键词声明
var re = new RegExp("ab+c");
- 使用正则表达式字面量
var re = /ab+c/;
二、正则表达式的几种模式
- 贪婪模式Greedy(在匹配的过程中,尽可能多的去选择匹配内容,然后逐个递减,直到匹配成功。)
- 勉强模式Reluctant(在匹配的过程中,首先尽可能少的去匹配,然后逐个增加,直到匹配成功。)
- 侵占模式Possessive(在匹配的过程中,尽可能多的去匹配,一旦匹配成功,就不会改变。)
三、正则表达式的字符
- 普通字符
- [...]匹配中括号中的所有内容
- [...]匹配除了后的内容
- [A-Z]匹配A-Z所有的字母
- . 匹配所有内容
- \s,\S \s匹配所有空白字符,\S匹配所有非空白字符
- \w,\W \w匹配所有字母、数字、下划线,\W匹配所有非字母、非数字、非下滑线内容
- \d,\D \d匹配所有数字内容,\D匹配所有非数字内容
- 非打印字符
- \cx 匹配由x指明的控制字符。
- \f 匹配一个换页符。
- \n 匹配一个换行符。
- \r 匹配一个回车符。
- \t 匹配一个制表符。
- \v 匹配一个垂直制表符。
- 特殊字符
- $ 匹配输入字符串的结尾位置。
- ( ) 标记一个子表达式的开始和结束位置。
*
匹配前面的子表达式零次或多次。+
匹配前面的子表达式一次或多次。- [ 标记一个中括号表达式的开始。
- ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。
- \ 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。
- ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。
- { 标记限定符表达式的开始。
- | 指明两项之间的一个选择。
- 修饰符
- g 全局匹配
- i 无视大小写