字符类

2017-11-02  本文已影响6人  Luyc_Han
js匹配使用
全局匹配
匹配全部
* 最少匹配0个最多不限制相当于{0,}
[]内部只能表示一个字符,上述写的[abc]表示a或者b或者c其实相当于/a|b|c/
表示数字或者字母
^表示取反,相当于除了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"]
表示数字
相当于[0-9a-zA-Z_]也就是数字字母和下划线
包括空格,tab,\n等一些空白的字符
相当于[^0-9] 也就是除了数字以外的所有字符,也就是和\d相反
相当于[^a-z0-9_]也就是和\w相反 
和\s相反也就是除了 包括空格,tab,\n等一些空白的字符
意思是最少n次,最多m次
如果写成 {n,}意思是最少n次最多不限制
如果写成 {,m}意思是最少不限制次最多m次
如果写成 {n}意思是刚好n次
举个例子:
\d{1-4}\g
意思是匹配一个1到4位的数字
这个^在[]内表示取反
如果在[]以外表示开头
相当于说
/^\d/g
这个表达式的意思是第一个字符必须是数字
表示结尾
相当于说
/\d$/g
这个表达式的意思是最后一个字符必须是数字
举个例子去除行首和行尾空格
/^\s*|\s*$/g
忽略大小写
单词边界
例子:
字符串:baadddaa
表达式:/\bbaa/g
匹配结果: baa

附录:

匹配汉字
[\u4e00-\u9fa5]
u4e00表示汉字第一个字       一
u9fa5表示汉字最后一个字    龥
上一篇下一篇

猜你喜欢

热点阅读