正则

90 阅读2分钟

今天学习了正则,前来总结一下: (今天第一次写哈哈哈,还挺鸡冻٩(๑>◡<๑)۶)

正则的定义:

是专门用来处理字符串的一种技术(获取 匹配)

创造正则的两种方式:

  • 字面量
  • 构造函数
  let reg = / werw/

   let reg = new RegExp

元字符:

定义:

双斜杠里面的东西 我们称为元字符

量词元字符 :

? * +

修饰符

其他(普通的 和 特殊的)

\d

表示一个数字字符

\D

取非 除了数字以外的任意字符

\w

数字 字母 下划线_

\W

取非

\b

匹配一个单词的边界

量词:

+ * ? {n}   {,n}   {n,m}   

用在要修饰的那个字符的后面 代表量词前面的那个字符可以出现的次数

()

在匹配的时候可以提升优先级

^

代表以什么开头

$

代表以什么结尾

[a-z]

小写字母 a到z

\

转义, 把那些正则当当中有特殊含义的字符 转义成没有特殊含义的普通字符串

.

代表了除了换行以外的任意字符 点本身用.

[^a-z]

取非 除了小写字母以外的任意字符

[a-zA-Z0-9]


test 是正则类的原型上的方法


JSON.stringify(yy);//转成字符串 
JSON.parse(yy);//转成对象


 let reg1 = /\d/
 let reg2 = /\d?/ 

\d 出现0-1次 就是\d可有可无

   let reg3 = /\d*/ 

\d 出现1-多次

  let reg4 = /\d+/

\d 出现0-多次


 let str = 'zhufeng';
let reg = /^zhufeng/

以z开头 后面是hufeng

  let reg = /zhufeng$/  

以g结尾 前面是zhufen

   let reg = /^zhufeng$/  

以z开头 以g结尾 前面是hufen


这里是一个需求:手机号 第二位只能是35789 //以1开头 后面这个一位是35789中的任意一个,后面是9个数字结尾

 let reg = /^1[35789]\d{9}$/

let reg = /[(zhu)]/ 

或者 ( 或者z 或者h 或者u 或者 )

  • et reg = /[xy]/等价 let reg = /x|y/
 let reg = /(zhu)|(feng)/



    let  reg = /z|food/ //zood  food

    let  reg = /[zf]ood/ //zood  food

    let  reg = /[[zf]ood/ //zood  food [ood

    let  reg = /[z|f]ood/ //zood  food |ood

  let reg1 = /hello/
let reg2 = /q\d?hello/ 

前面是q q后面要不是也没有 要不就是一个数字 在后面必须是hello

 let reg3 = /q\d*hello/

前面是q q后面要不啥也没有 要不就是一到多个数字 在后面必须是hello

 let reg4 = /q\d+hello/
  let reg4 = /q\d{3}hello/ 

前面是q q后面只能是3个数字 在后面必须是hello

   let reg4 = /q\d{3,}hello/

前面是q q后面最少是3个数字 在后面必须是hello

  let reg4 = /q\d{3,5}hello/ 

前面是q q后面最少是3个,最多5个数字 在后面必须是hello

  let reg4 = /q\d{0,10}hello/ 

前面是q q后面最多10个数字 在后面必须是hello


  let reg1 = /(zhufeng)+/ 

()在匹配的时候可以提升优先级


 let reg2 = /q\d?hello/ 

\d 出现0-1次 就是\d可有可无

   let reg3 = /\d+/

\d 出现1-多次

   let reg4 = /\d*/ 

\d 出现0-多次



let phoneReg = /^(1[89])|([2-5]\d)|(6[0-5])$/;

上面的正则有三个规则(满足三者之一就可以,所以有时需要再在外面整体加一个括号): 
1)以1开头后边是8或者9 后面就无所谓了 
2)字符串中 只要包含20到59中的数字即可 
3)字符串只是以 60到65的数字结尾的即可


/^([+-]?(([1-9]\d+)|(\d))|(.\d+)?)$/ 拆分解析:

/(([1-9]\d+)|(\d))/

整数部分是分为一位数和多位数的一位数 没有要求 \d就可以 多位数要求 0不能开头[1-9]\d+

 /(.\d+)?/

小数部分 有点必有后面的数字 也就是说 .xx是一个整体的存在 要有都有,要是没有都没有

/([+-]?/

符号部分 正负号 可有可无