一、定义:
正则:专门用来处理字符串的技术
二、创造正则的两种方式:
- 字面量 :let reg=/ werw/
- 构造函数:let reg=new RegExp
三、元字符(百度搜索 正则表达式)
定义:双斜杠里边的东西,我们称之为元字符
四、语法
1、`let str1="hduhellochdjakg"
let reg1=/hello/;
//test是正则类的原型上的方法
console.log(reg1.text(str1))
//使用正则reg1去匹配字符串str1,若str1能满足正则的规则,则返回true`
2、检测里面有没有666
`let str4="fghjk666vbneks";
let reg=/666/;`
1.量词元字符 (多用来捕获)
?* + {n} {n,} {n,m}:
1)用在要修饰的字符后边,代表量词前边的那个字符可以出现的次数
2)
- ()在匹配的时候可以提升优先级
-
^ 以什么开头
-
$ 以什么结尾
` `let str="zzzzzz" let reg=/^zhufeng/ //z开头,后边是hufeng let reg=/zhufeng$/ //g结尾,前边是hufeng let reg=/^zhufeng$/ //z开头,g结尾中间是hufen` ` -
\ 转义,把那些在正则当中有特殊含义的字符,转义成没有特殊含义的普通字符
` let tt = "hello\"zhufeng\"" //"hello"zhufeng""" ` -
. 代表了除了换行以外的任意字符 而检测时可以用.去表示
-
[]代表单个字符的或
-
let reg=[/a-z/] //26个小写字母的任意一个,只能从前往后,不能从后往前(根据ASCII码) -
[^a-z]除了小写字母以外的任意字符
-
[A-Za-z0-9] 大小写字母以及数字
-
-
| 代表或的意思
` let reg=/[xy]/;//等价于let reg=/x|y/ ` `let reg=/(wang)|(yi)/;//wang或yi `
2. 修饰符
3.其他(普通的 和 特殊的)
4.\d表示一个数字字符
`let reg2=/\d/;//检测数字
console.log(reg2.text(str1));`
5.\D 取非 除了数字以外的任意字符
`let str3="123456"
console.log(/\D/.test(str3))//false
`
6.\w 数字 字母 _
7.\W 取非
ep:元字符用法举例
1、 let reg1=/hello/
2、前面是q q后面是一到多个数字,再后边必须是hello
`let reg2=/qd\d+hello/`
3、前面是q q后面是一个数字,或者啥也没有,再后边必须是hello
`let reg2=/qd\d?hello/`
4、前面是q q后面要么啥也没有,要么就是一到多个数字,再后边必须是hello
`let reg2=/qd\d*hello/ `
5、前边是q q后面只能是3个数字,再后边必须是hello
`letreg2=/q\d{3}hello/ `
6、前边是q q后面最少是3个数字,再后边必须是hello
` let reg2=/q\d{3,}hello/`
7、前边是q q后面是3到5个数字,再后边必须是hello
`let reg2=/q\d{3,5}hello/ `
8、前边是q q后面最多是10个数字,再后边必须是hello
`let reg2=/q\d{0,10}hello`
总:代码输出及语法
`let str="qd78hello";
console.log(reg1.test(str));
console.log(reg2.test(str));
`
五、量词元字符具体示栗及白话翻译
1.里面有数字
`let reg1=/\d/`
2、\d(数字)出现0-1次 大白话 就是\d可有可无。返回结果都是true
`let reg2=/\d?/ `
3、数字出现一到多次
`let reg3=/\d+/ `
4、数字出现0到多次
`// let reg3=/\d*/`
5.{}的用法
`let str="2ebdeuwbczhufengzhufengdhadb";
let reg4=/zhufeng{1,}/ //代表g出现1-多次
let reg4=/(zhufeng){1,}/;//()在匹配的的时候 可以提升优先级(把珠峰看作一个整体)
console.log(reg4.test(str));`
6、
`let obj={};//字面量
let obj2= new Object();//构造函数
let reg=/qweqe/;`
六.转化成字符串
`let reg3=/o/
let obj={
q:"hello"
}
let t_str=JSON.stringify(obj)//使用JSON的方法,把对象转化成字符串
console.log(reg1.text(t_str));`
综上所述:
- 手机号练习
要求:第二位必须是35789
写法一:
`let reg=/^1[35789]\d*9$/
写法二
`let reg=/^1[35789]\d{9}$/`
//以1开头,第二位是35789中任意的一个,后边是9个数字结尾
2. 验证有效年龄端 18-65 可以分为:
18 19
20 59
60 65
`let reg=/(1[89])|([2-5]\d)|(6[0-5])/`