正则学习记录
var str = 'hao hao xue xi tian tian xiang shang'
var reg
一、普通字符
1、筛选出str中包括abc的所有选项并返回一个array
reg = /[abc]/g
str.match(reg)
2、筛选出str中除abc的所有选项并返回一个array
reg = /[^abc]/g
str.match(reg)
3、/[A-Z]/g 表示所有大写字母[a-z]表示所有小写字母
4、/./g 匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]
5、/[\s\S]/g 匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,包括换行
6、/\w/g 匹配数字、子母、下划线,相当于/A-Za-z0-9_/g
二、特殊字符
1、特殊字符一定要在前边加\,表示字符本身,因为特殊字符可能身负其他的任务
三、限定字符
1、* 表示零次或多次 , 例如/zo*/g 可以匹配z、也可以匹配zoo----等同于{0,}
2、+ 表示一次或多次 , 例如/zo+/g 可以匹配zo、zoo,却不可以匹配z-----等同于{1,}
3、? 表示零次或一次 , 例如“do(es)?”可以匹配do,does,doys,----等同于{0,1}
4、{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
5、{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
6、{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。