正则大作战 基础篇(一)

我眼里的正则

/([^&]*)(&|$)/ === 龘靐齉齾龗麤鱻爩龖吁 灪麣鸾鹂鲡驫饢籱癵爨 滟厵麷鸜郁骊钃讟虋纞 龞齽齼鼺黸麢鹳鹦鸙鸘

心情复杂

  • 这是什么
  • 这又是什么
  • 我是谁,我在哪里,我为什么要怼正则

面对现实(ha sa ge?)

在个人日常开发中,其实用到的正则匹配也不算太多(太菜所以接触不了太多)。每次遇到需要正则去处理的表达式,基本搜索引擎敲几下就出来了,自己也想弄懂检索出来的这么一段正则是什么个意思,总是看不懂,要么就是看懂了也就马上忘了。抱着侥幸的心理,一直拖到了现在。今儿,我想下个战书,持续作战下去。

学习过程

主要是想要依靠大量平日里经常接触的正则表达式下手,例如:手机号码、邮箱、密码强度、关键字替换、简单模板引擎正则部分以及比较有意的部分。

来,进入枯燥的关键字(主要元字符)

匹配符
代码描述
\w匹配字母或数字或下划线或汉字
\W匹配任意不是字母,数字,下划线,汉字的字符
\s匹配任意的空白符
\S匹配任意不是空白符的字符
\d匹配数字
\D匹配任意非数字的字符
特殊符
代码描述
.匹配除换行符以外的任意字符
^匹配字符串的开始
$匹配字符串的结束
\匹配这些特殊符,必须首先使字符”转义”, ( => (
|相当于或则一般来说是 条件A
()标记一个子表达式的开始和结束位置,这个会在系列(二)中怼
[]暂时理解为任选其一,[0-4] 01234中的任何一个
限定符
代码描述
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

我看烦了,赶紧整例子

1 邮箱
    var emailReg = ^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$ ;

    ---- ^以xxx开头,xxx是什么呢,就是[A-Za-zd\d]+;

    ---- [A-Za-zd\d]+是啥子东西,[]是任选其一,A-Za-zd\d 大小写英文加数字,+ 出现的次数必须 >= 1;

    ---- 那么[-_.]就简单了,- _ . 这三个符号任选一个哈;

    ---- * 的意思就是 >=0,大概就是出不出现随便你;

    ---- @ 就是@这个字符,不要以为跟*搭配在一起会神圣,关键字特殊符号就那么几个;

    ---- {2,4}$,前面()或者[]里面的内容长度要满足2-4之间,并且以这几个结尾,也就是$的作用; 

A:什么鬼,例子不是应该从简单到难循序渐进吗,你会教吗???

me:不…不是,咱们可以拆开来吗,拆开不就差不多了,刚好涵盖大部分基础。

2 手机号

这个给你整两个遛遛

    var A = /^1[34578]\d{9}$/;
    var B = /^1(3|4|5|7|8)\d{9}$/;

    ---- A,看过邮箱,也八九不离十能看到A了,我就一句话说了:
    ^1 数字1开头的,第二位是[34578]中的任意一个,再加上\d{9}$ 9个数字结尾;

    ---- B 区别主要在于(3|4|5|7|8),意思跟上面的[34578]一样,白话文就是 你要么是3要么是4要么是5要么是.....嘿嘿;
3 简单模板引擎替换,URL参数获取

写到这里,发现要涉及捕获,我想放到系列(二)里面,你不愿意也不行。大概就是:
– var nameA = ‘小花;
– <div>{#nameA#} <div >

> <div>小花<div >

4 密码强度

有点复杂,条件多,心也累,又发现有 ?! 的表达式,属于零宽断言,可能要进阶到(三了);看到这里有没有觉得像个水文了,委屈.jpg,我只是拆分了循序见见嘛~

简单入门总结

其实在我现在看来正则也不是那么遥不可及,我是为了攻克它,所以选择写blog来巩固学习。当你看到这里的时候,可能你学到的东西已经跟我写这里的时候相当了,就差要你自己动手去实践了,这也是我写作的目的,真的,没有难的语言,只有懒的人。

附件

常用的正则表达式

深入理解正则大意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值