正则匹配减号_从今以后,我不写正则了

5f4f36bd7db700909663f3c05b111c43.gif

735a78844e6037e9255394d41efc65ad.png

说起正则表达式,估计很多前端小伙伴和我一样,对它又爱又恨。一段非常简短的表达式,就能实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,开发效率能得到极大的提升。

但是,我比较懒,懒得记那些规则,一段时间不写,就忘记了规则……

所以,我决定,收集一些常用的需求和对应的正则表达式写法,随用随取就好了。以后我就不自己写了。

一、社交类

1. 邮箱

var isMail = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;var isMail = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;var isMain = [\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?;

2. 微信号(6至20位,以字母开头,字母,数字,减号,下划线)

var isWeixin = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;

3.QQ号

var isQQ = /^[1-9][0-9]{4,10}$/;

4. 手机号

// 1开头,第二位数是3/4/5/7/8的11位手机号码^1[3,4,5,7,8,9]\d{9}$// 移动号码^134[0-8]\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|1703|1705|1706|18[2-478])\d{7,8}$// 电信号码^(?:133|153|1700|1701|1702|177|173|18[019])\d{7,8}$// 联通号码^(?:13[0-2]|145|15[56]|176|1704|1707|1708|1709|171|18[56])\d{7,8}|$

二、字符类

1. 中文

var isCn = /^[\u4e00-\u9fa5]+&/;

2.英文字母

var isEn = /^[a-z]+$/i;

3. 由数字、英文字符或下划线组成的字符串

^\\w+$

4. 特殊字符监测

var isSchar = /["'<>%;)(&+]+-!!@#$~/;

5. 身份证号

// 15位^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$// 18位^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$

6. 日期(yyyy-mm-dd格式,平年闰年考虑在内)

^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

7. 金额校验(精确到2位小数)

^[0-9]+(.[0-9]{2})?$

8. 校验密码强度(必须包含大小写字母和数字组合,长度8-10个字符

// 不能使用特殊符号^(?=.\d)(?=.[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$// 可以使用特殊符号^(?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,10}$

9. 车牌号

var isCar = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;

10. 经纬度

// 经度var isLong = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;// 纬度var isLat = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/;

三、浏览器和平台相关

// IEvar userAgent = /msie (\d+\.\d+)/i;// webkit内核var userAgent = /webkit/i;// Chrome浏览器var userAgent = /chrome\/(\d+\.\d+)/i;// firefox浏览器var userAgent = /firefox\/(\d+\.\d+)/i;// safafi浏览器var userAgent = /(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i;// 安卓系统var userAgent = /android/i;// 移动端var userAgent = /(nokia|iphone|android|ipad|motorola|^mot\-|softbank|foma|docomo|kddi|up\.browser|up\.link|htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|CoolPad|webos|techfaith|palmsource|blackberry|alcatel|amoi|ktouch|nexian|samsung|^sam\-|s[cg]h|^lge|ericsson|philips|sagem|wellcom|bunjalloo|maui|symbian|smartphone|midp|wap|phone|windows ce|iemobile|^spice|^bird|^zte\-|longcos|pantech|gionee|^sie\-|portalmmm|jig\s browser|hiptop|^ucweb|^benq|haier|^lct|opera\s*mobi|opera\*mini|320x320|240x320|176x220)/i;// Mac Os平台var userAgent = /macintosh/i;// Windows平台var userAgent = /windows/i;

四、其他

1. 域名

var isDomain = /^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;

2. 匹配html标签属性

:".*?"|'.*?'|[\\^'">\\s]+))?)+\\s*|\\s*)\\/?>

3. 提取a链接

(]*)(href="https?:\\/\\/)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))[^"]+)"((?!.*\\brel=)[^>]*)(?:[^>]*)>

4. 提取网页中的图片信息

\\img][^\\\\>]*[src] *= *[\\"\\']{0,1}([^\\"\\'\\ >]*)

5. 筛选出文本中的URL

^(f|ht){1}(tp|tps):\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- ./?%&=]*)?

6. 检查url前缀(比如区分http或https)

if (!s.match(/^[a-zA-Z]+:\\/\\//)){      s = 'http://' + s;}

如果大家想自己练习写正则的能力,还可以用下面这个工具进行测试:

正则表达式在线测试工具——regex101

306709f677e964389e0b8386ccf47e50.png

暂时想到这些,当然其中也有一些会随着时间推移慢慢更新的。

如果大家想到更多或者更好的写法,欢迎评论或私信我哦~

8d17f470ef1eefe91c1a1effe9b9ad48.gif36cab73bc8114e09d38cb190ed81deea.pngCC推荐· 加我微信(codenotes66),进我的技术交流群· 关注我的公众号,做一个有趣的技术人………

de54cf1a9cd8c1ab376241a9086ef449.png28ca98c40d961b62d49c36e322db8fc3.gif

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值