美文网首页
正则表达式

正则表达式

作者: fanyank | 来源:发表于2018-08-18 19:48 被阅读10次

    最近跟廖老师学习了一下正则表达式,整理笔记如下:

    基础

    \d 匹配一个数字,\w 匹配一个字母或者数字,\s 匹配一个空格或者一个制表符如

    • 00\d 可以匹配 007
    • \d\d\d 可以匹配 100
    • \w\w 可以匹配 js

    . 可以匹配任意字符,如

    • js. 可以匹配 jsp,js!

    以上都是匹配一些固定长度的字符,要想匹配一些变长的字符

    • * 匹配任意数量的字符
    • + 匹配至少一个字符
    • ? 匹配一个或者0个字符
    • {n} 匹配n个字符
    • {n,m} 匹配n-m个字符

    比如一个简单应用,匹配一个电话号码,正则可以写作 \d{4}\s\d{7},那么就可以匹配 0391 6528455 这个号码,如果我们想匹配0391-6528455这个号码,正则可以修改为 \d{4}\-\d{7}

    下面来进行一些测试吧!

    var regexObj = /\d{4}\-\d{7}/;
    regexObj.test("0391-6528455"); //true
    regexObj.test("!0391-6528455!"); //true
    

    可以看到不以字母为开头或者结尾的字符串也可以通过测试,如何避免就需要用到如下两个匹配符了。

    • ^: 匹配行的开头,如以数字开头 ^\d
    • $: 匹配行的结束,如以字母或者数字结尾 \w$

    进阶

    上面只是泛泛的进行数字和字母进行匹配,要想做到精确匹配,可以使用 []来确定匹配范围,如

    [0-9a-zA-Z\_] 可以匹配一个数字,字母,或下划线
    [0-9a-zA-Z\_]+ 可以匹配至少一个一个数字,字母或下划线
    [a-zA-Z\_\$][0-9a-zA-Z\_\$]* 可以匹配字母/下划线/$符号开头,后接任意个数字/字母/下划线/$符号,也就是JavaScript可以接受的变量名
    

    相关文章

      网友评论

          本文标题:正则表达式

          本文链接:https://www.haomeiwen.com/subject/apuzbftx.html