js正则表达式小记

Js正则表达式小记

         最近因为一些事情,突然对正则有了兴趣,就到网上搜罗了一些文章,看了一下,发现大同小异,于是决定自己写个小记,为了互联网的开源分享精神,也为了以后查找方便。这篇文章便以一个常见的正则验证邮箱为例,进行简单说明,因为完整的正则表达式过于庞大,这里就不细说了,有兴趣的同学们可以去网上找一些资料进行完整的学习。

         有很多人可能觉得正则表达式看不懂,一堆的字符串,各种字符,没错,这就是正则,只需要简单的字符就可以完成大部分的字符匹配任务。比如本章要讲的匹配用户输入的邮箱是否正确。

下面是一些正则的常用匹配字符:

  •  ^匹配一个输入或一行的开头
  •  $匹配一个输入或一行的结尾
  •  *匹配前面字符0次或多次
  •  +匹配前面字符1次或多次
  •  ?匹配前面元字符0次或1
  •  {n}表示匹配前面的字符n
  •  {n,m}表示匹配前面的字符n-m
  •  \d表示匹配数字类型
  •  \w表示匹配数字或者字母类型(包含下划线_
  •  \s匹配空格(也包括Tab等空白符)

那么接下来我们就可以开始写第一个正则表达式了

这里附上一个在线的正则表达式工作面板:http://www.regexlab.com/zh/workshop.htm

比如我们要匹配一个’javascript’字符,那么我们可以这样写:

         \w{1,}或者\w+,当然还有很多其他写法,大家可以进行验证。


 

 

那么接下来我们来练习一个匹配手机号和座机号的正则:

         手机号的非常简单,一般来说都是11位号码,因此我们这里就判断11位的手机号:

         这个匹配的正则表达式是这样的\d{11},那么我们来试一下好了。从下图中可以看到11位手机号匹配成功。


 

 

接下来看一下座机号的表达式:\d{3}\-\d{3,8}

这个表达式的意思我们来解读一下,他匹配前面的3个数字做为区号,然后匹配了一个中划线-在接下来匹配的才是我们的电话号码。我们一起来看一下结果。



 

接下来我们讲一下正则里面的另外一种方式,范围匹配:

[]中括号,[]里面的内容表示要匹配的范围,但是他只能匹配其中的一个,比如:

l  [0-9a-zA-Z\_] 可以匹配一个数字、字母或者下划线

l  [0-9a-zA-Z\_]+ 可以匹配至少由一个数字、字母或者下划线组成的字符串,比如 'a100' , '0_Z'

l  A|B 可以匹配A或B

也许大家注意到了,上面还说了一个|,这个是左右两边有一个匹配即可,相当于一个or。

接下来我们分析一下匹配邮箱需要匹配哪些字符:

1.      邮箱的前缀,也就是@的前面这部分,这部分有可能出现的有数字,字母,下划线等

2.      最重要的莫过于@符号

3.      @后面的邮箱名称部分,如163,126,qq,gmail

4.      最后的.com或者其他的后缀,这里以.com为例

分析完了,那么我们接下来只需要进行这四段的匹配就可以了,来看一下表达式的写法:

([\w\.]*)\@(\w*)\.([com]*)

这个表达式的第一部分是([\w\.]*)它可以匹配多个字母,数字,下划线以及点.这个字符来做为邮箱的前缀;第二部分:\@用来匹配@符号;第三部分:(\w*)用来匹配邮箱名,因为他可能是数字也可能是字母;第四部分:\.([com]*)这里匹配.com,这里我为什么不直接写\.com呢,因为这样写的话,如果需要加入其它的后缀,那么会更方便添加。好了,接下来我们来看一下匹配结果:


 


 

匹配成功,那么本篇文章就到这里,希望对大家能有所帮助。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值