正则表达式

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

基础

\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可以接受的变量名

你可能感兴趣的:(正则表达式)