首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

正则表达式:看懂正则表达式只需要几个实例就够了

正则表达式真的不容易看懂,即使看完了所有的字符代表的含义也可能一脸懵逼

而实际上我们只需要一些 "实例" 你就完全可以入门了 (本文可供参考)

就像这样: (最后还有正则表达式的使用方式哟)

当然了解一下正则字符含义也是不错的:这里推荐两个链接:

http://www.runoob.com/jsref/jsref-obj-regexp.html菜鸟教程正则表达式速查

http://tool.oschina.net/regex/正则表达式在线验证网站

1.正则表达式基础语法

" ^ "指出一个字符串的开始

" $ "指出一个字符串的结束

" \"将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符

"^abc" :匹配所有以 "abc" 开始的字符串 (例如:"abc","abccba")

"abc$":匹配所有以"abc" 结尾的字符串 (例如:"gggabc","reddcba")

"^abc$":匹配开始和结尾都为"abc"的字符串 (例如:"abc")

"abc":没有任何字符,匹配任何包含"abc"的字符串 (例如:"aaaabccc","abc123")

"n":匹配n "\n":匹配换行符 "\/"这里是 \ he / 连在一起写,匹配 " / " 字符

" * "匹配前面的子表达式零次或多次

" + "匹配前面的子表达式一次或多次

" ? "匹配前面的子表达式零次或一次

"ac*":匹配字符串其中一个a后面跟着零个或若干个c (例如:"accc","abbb")

"ac+":匹配字符串其中一个a后面跟着至少一个c或者多个 (例如:"ac","acccccccc")

"ac?":匹配字符串其中一个a后面跟着零个或者一个c (例如:"a","ac")

"a?c+$":匹配字符串的末尾有零个或一个a跟着一个或多个c (例如:"ac","acccccc",''c'',"ccccccc")

" "n为非负整数,匹配n次

" "n为非负整数,匹配至少n次

" "n,m为非负整数,最少匹配n次 最多匹配m次

"ab":表示一个字符串有一个a后面跟随2个b (例如:"abb","abbbbb")

"ab":表示一个字符串有一个a后面跟随至少2个b (例如:"abb","abbb")

"ab":表示一个字符串有一个a后面跟随3到6个b (例如:"abbb","abbbb","abbbb")

" "表示"或"

" ."表示任何字符

"ab":表示一个字符串里有 a 或者 b (例如:"a","b","ab","abc")

"a.":表示一个字符串有一个 a 后面跟着一个任意字符 (例如:"a1","a456","avv")

方括号里用"^"表示不希望出现的字符

" [abc]"表示字符集合,表示一个字符串有一个"a"或"b"或"c" 等价于 [zbc]

" [^abc]"表示一个字符串中不应该出现abc,即是匹配未包含改集合的任意字符

" [a-z]"表示一个字符串中存在一个a和z之间的所有字母

" [0-9]"表示一个字符串中存在一个0和9之间的所有数字

" [^a-z]"表示一个字符串中不应该出现a到z之间的任意一个字母

"^[a-zA-Z]"表示一个字符串中以字母开头

"[0-9]%":表示一个百分号前有一个的数字;

" \d "匹配一个数字字符,等价[0-9]

" \D "匹配一个非数字字符,等价[^0-9]

" \f"匹配一个换页符,等价\x0c和\cL

" \n "匹配一个换行符。等价于\x0a和\cJ

" \r "匹配一个回车符。等价于\x0d和\cM

" \s "匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]

" \S"匹配任何非空白字符。等价于[^ \f\n\r\t\v]

" \t"匹配一个制表符。等价于\x09和\cI

" \v "匹配一个垂直制表符。等价于\x0b和\cK

" \w"匹配包括下划线的任何单词字符。等价于“”

" \W"匹配任何非单词字符。等价于“”

2.正则表达式实战

/^[0-9]$/

表示字符串全部由数字组成,即是匹配当前字符串是否是由全数字组成

[0-9] 表示字符的范围是0到9

表示字符串长度至少为1,最多为20,字符串出现次数的范围

/^[a-zA-Z]([a-zA-Z0-9._])$/

可以用来验证登录名,首字母为字母,长度为至少6最多16

^[a-zA-Z] 表示最开始的第一个首字母为字母

([a-zA-Z0-9._]) 这是首字母后面的即是从第二个字母开始要求至少再有5个最多15个由字母数字以及指定特殊字符组成的字符串

/^[1][3458][0-9]\d$/

可以用来验证手机号码,首字母为1,长度11,首尾都是数字

^[1] 第一个数字为1

[3458] 第二个数字为 3或者4或者5或者8

[0-9]\d 匹配一个数字范围是0-9,匹配8次,所以至少要有8个数字。加起来就是11个

/^(\w)$/

验证密码

\w 匹配任何非单词字符 等价于“”

(\w) 匹配任何非单词字符,最少6个最多20个

3.RegExp 对象的属性和方法

下面我们来研究如何使用

//构造一个正则对象,并填写表达式

var re = new RegExp("\[0-9]*");var re = /[0-9]*/;

//注意:当使用构造函数(new RegExp)创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)

test() 方法:正则表达式方法。

test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

var re = /[0-9]*/;

re.test("abc") //返回false

re.test("1234") //返回true

exec() 方法:一个正则表达式方法。

exec() 方法用于检索字符串中的正则表达式的匹配。

该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

var re = /[0-9]*/;

re.exec("abc") //返回 null

re.exec("1234") //返回1234

当然实际中可能比较复杂,这就需要清晰的嵌套了

既使一个人,我依然在这里等着你

感谢大家的支持

小编会时常的和大家分享干货的

发现有趣有用的

会推荐给大家的

......

READ MORE

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180119G0D19800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券