正则表达式的运用

318 阅读2分钟

常用正则表达式语法知识

实践中的正则

学习正则还是很苦逼的,不过简单的还是要会写,复杂的还是很难滴,不过至少学会要会看懂大牛和常用的正则表达式就了。

1、姓名

 const name = new RegExp(/^([A-Za-z]|[\u00B7]|[\u4E00-\u9FA5]|[·])*$/).test(value); //只可以为汉字、字母、符号(·) const patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; // 只能输入5-20个以字母开头、可带数字、“_”、“.”的字串

2、密码

const patrn=/^(\w){6,20}$/; // 只能输入6-20个字母、数字、下划线
const patrn=/^(\W){6,20}$/; // 除了字母、数字、下划线的其他组合

3、手机号码

const resPhone = new RegExp(/^(1)\d{10}$/).test(value) // 首位是1的11位数字组成
const patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/; // 可以“+”开头,除数字外,可含有“-” 
const patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; 

4、纯数字和有数字

const value = '122345s' 
new RegExp(/[0-9]/g).test(value)  // 有数字就可以
new RegExp(/^[0-9]$/).test(value) // 只能是纯数字

5、邮箱

const resMail = new RegExp(/^([0-9a-zA-Z._]|-)+@{1}([0-9a-zA-Z._]|-)+\.{1}([0-9a-zA-Z._]|-)+$/);

6、归类汇总

元字符:(.,\w,\W,\d,\D,\s,/S,\b,\B^,$,)

\w 匹配一个可以组成单词的字符(含数字),包括下划线 
\W 匹配除了字母、数字、下划线
\d 匹配一个字数字符 /\d/ = /[0-9]/ 
\D 匹配一个非字数字符,/\D/ = /[^0-9]/   
x|y 匹配x或y
^ 匹配的是字符的开头,在多行检索中,匹配的是一行的开头 $ 匹配的是字符的结尾,在多行检索中,匹配的是一行的结尾
[\b] 匹配一个退格符 \b 匹配一个单词的边界 \B 匹配一个单词的非边界 
\s 匹配一个空白字符,包括\n,\r,\f,\t,\v等 \S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/ 

分组符([],(),{});

{n} 精确匹配n次 
{n,} 匹配n次以上 
{n,m} 匹配n-m次
(x) 匹配x保存x在名为$1...$9的变量中 
[xyz] 匹配这个集合中的任一一个字符
[^xyz] 不匹配这个集合中的任何一个字符 

 修饰符(i,g,m);

 g 执行一个全局的匹配,简而言之,就是找到所有的匹配,而不是在找到第一个之后就停止了
 i 忽略大小写

量词(*,?,+,-,{n,m},?=n,?!=n);

* 匹配前面元字符0次或多次
+ 匹配前面元字符1次或多次 
? 匹配前面元字符0次或1次

7、RegExp对象的函数常用的有2个

new RegExp().exec() 返回一个数组,存放匹配的结果。如果未找到匹配,则返回null。

new RegExp().test() 返回 true,否则返回 false。

8、String对象的函数常用的2个

match():stringObject.match(searchvalue | regexp)

const request = 'https://luckyuat.mobile.taikang.com/lucky/register/accredit/'
console.log(request.match('/lucky/register')) // 生成对应数组
console.log(request.match('/lucky/page')) // null
使用场景,在全局配置请求接口的时候,进行接口参数统一管理(比如统一加上请求头等)

"http:/www.baidu.com/?a=1&b=2".match(/([^?&=]+)=([^?&=]*)/g); //["a=1", "b=2"]
/([^?&=]+)=([^?&=]*)/g
我这样解释:全部搜索出现一次或者多次由不包括?&=集合中的任何一个字符所组成的一个或者多个等值组合

replace(): stringObject.replace(regexp/substr,replacement)

const eventValue = '你好。世界'
const value = eventValue.replace(/[.。,,、]/g, '·') // 进行替换 (你好·世界)

督促自我,成长每一步。。。