字符类
2017-11-02 本文已影响6人
Luyc_Han
- match
js匹配使用
- g 取与global
全局匹配
- *
匹配全部
* 最少匹配0个最多不限制相当于{0,}
- [abc]
[]内部只能表示一个字符,上述写的[abc]表示a或者b或者c其实相当于/a|b|c/
- [0-9a-zA-Z]
表示数字或者字母
- [^a]
^表示取反,相当于除了a以外的所有字符;
例如[^0-9a-zA-Z]意思就是除了数字和字母意外的所有字符
- .
匹配所有字符
- +
+最少匹配一个最多不限制相当于{1,}
例如:
字符串: aakkdkd112kd33333
/a.+d/g 此表达式匹配的就是aakkdkd112kd这段字符串
说明:
正则表达式的贪婪属性会使匹配的时候以最后一个字符为准
举个例子:
<ddd>d<d44d>55
如果我们只想匹配到: <ddd>,<d44d>
使用表达式: /<.+>/g 就会体现出正则的懒惰之处,匹配之后得到:<ddd>d<d44d>
因为它是以最外层的<>为准
这时我们就需要稍微改一下表达式:/<[^<>]+>/g
这样的话就可以[^<>]表示出了<>之外的所有字符
附加例子:
var str = "http://main.mp3.jpghttps://main.mp3.jpg"
var zz = /http[s]?:\/\/[^j][^p][^g]*\.jpg/g
str.match(zz)
结果:
["http://main.mp3.jpg", "https://main.mp3.jpg"]
- \d 原单词 digital 数字
表示数字
- \w 取与 word
相当于[0-9a-zA-Z_]也就是数字字母和下划线
- \s 取与 space
包括空格,tab,\n等一些空白的字符
- \D
相当于[^0-9] 也就是除了数字以外的所有字符,也就是和\d相反
- \W
相当于[^a-z0-9_]也就是和\w相反
- \S
和\s相反也就是除了 包括空格,tab,\n等一些空白的字符
- {n, m} 量词
意思是最少n次,最多m次
如果写成 {n,}意思是最少n次最多不限制
如果写成 {,m}意思是最少不限制次最多m次
如果写成 {n}意思是刚好n次
举个例子:
\d{1-4}\g
意思是匹配一个1到4位的数字
- ^
这个^在[]内表示取反
如果在[]以外表示开头
相当于说
/^\d/g
这个表达式的意思是第一个字符必须是数字
- $
表示结尾
相当于说
/\d$/g
这个表达式的意思是最后一个字符必须是数字
- ^ $
举个例子去除行首和行尾空格
/^\s*|\s*$/g
- i
忽略大小写
- \b
单词边界
例子:
字符串:baadddaa
表达式:/\bbaa/g
匹配结果: baa
附录:
匹配汉字
[\u4e00-\u9fa5]
u4e00表示汉字第一个字 一
u9fa5表示汉字最后一个字 龥