ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaScript基础_3(正则表达式)

2021-07-30 18:33:16  阅读:160  来源: 互联网

标签:console log 正则表达式 JavaScript 基础 let str reg match


前言

本期内容是对JavaScript中正则表达式的简单总结;

正文

正则表达式的test方法:

let str="name zhao";
let reg=/zhao/;里面就是正则表达式了;
let res=reg.test(str);
console.log(res);
//在字符串中匹配到zhao返回true;没有则返回false;

在这里插入图片描述
多种模式匹配:

let str_1="name zhao";
let str_2="name qian";
let reg=/zhao|qian/;//|相当于或
let res_1=reg.test(str_1);
let res_2=reg.test(str_2);
console.log(res_1,res_2);

在这里插入图片描述
通过添加标志忽略大小写:

let str_1="name zhao";
let str_2="name ZhAo";
let reg=/zhao/i;//后面的i就是标志位;表示匹配时忽略大小写;
let res_1=reg.test(str_1);
let res_2=reg.test(str_2);
console.log(res_1,res_2);

在这里插入图片描述
提取匹配项 match方法:

let str="zhao qian sun li";
let reg=/i/;
let res=str.match(reg);//注意这里是str的match方法
//match方法返回一个数组,数组中保存了匹配信息,但只有第一个匹配到的信息;
console.log(res);

在这里插入图片描述
通过添加标志使全局匹配:

let str="zhao qian sun li";
let reg=/i/g;//g为全局匹配的标志位
let res=str.match(reg);//返回一个数组,数组内有全部匹配到的内容;
console.log(res);

在这里插入图片描述
通配符的使用:

let str="zhao qian sun li";
let reg=/.i/g;//.为通配符,表示任何一个值;
let res=str.match(reg);
console.log(res);

在这里插入图片描述
字符集的简单使用:

let str="zhao qian sun li";
let reg=/[sql]i/g;//[]表示一个字符集,表示i前面可以是q或者l或者s,仅表示一个字符;
let res=str.match(reg);
console.log(res);

在这里插入图片描述
字符集的其他用法:

let str="@qq zhao 123";
let reg_1=/[0-9]/g;//匹配0-9的数字,相当于[0123456789];
let reg_2=/[a-z]/g;//匹配a-z的字符;
let reg_3=/[a-z0-9]/g;//匹配a-z的字符和0-9的数字;
let reg_4=/[^0-9a-z]/g;//加了^相当于不匹配,匹配除0-9a-z的所有字符;
let res_1=str.match(reg_1);
let res_2=str.match(reg_2);
let res_3=str.match(reg_3);
let res_4=str.match(reg_4);
console.log(res_1);
console.log(res_2);
console.log(res_3);
console.log(res_4);

在这里插入图片描述
匹配多次出现的字符:

let str_1="naaaaaaame";
let str_2="nme";
let reg_1=/na+/g;//匹配n后面有一到多个a;
let reg_2=/na*/g;//匹配n后面有零到多个a;
console.log(str_1.match(reg_1));
console.log(str_1.match(reg_2));
console.log(str_2.match(reg_1));
console.log(str_2.match(reg_2));

在这里插入图片描述
贪婪模式与非贪婪模式:

let str="naaaaaaame";
let reg_1=/na*/g;//贪婪模式尽可能的去多匹配
let reg_2=/na*?/g;//在*后面加?;非贪婪模式,尽可能少的匹配;
console.log(str.match(reg_1));
console.log(str.match(reg_2));

在这里插入图片描述
匹配字符串的开头和结尾:

let str_1="name zhao";
let str_2="zhao name"
let reg_1=/^name/g;//在前面加^匹配在开头的name
let reg_2=/zhao$/g;//在结尾加$匹配在结尾的zhao
console.log(str_1.match(reg_1));
console.log(str_1.match(reg_2));
console.log(str_2.match(reg_1));
console.log(str_2.match(reg_2));

在这里插入图片描述
字母数字字符集:

let str="namezhao123@163.com";
let reg_1=/\w+/g;//匹配所有字母数字和_;相当于[0-9a-zA-Z_];
let reg_2=/\W+/g;//匹配所有字符;相当于[^0-9a-zA-Z_];
let reg_3=/\d+/g;//匹配所有数字;相当于[0-9];
let reg_4=/\D+/g;//匹配所有的非数字;相当于[^0-9];
console.log(str.match(reg_1));
console.log(str.match(reg_2));
console.log(str.match(reg_3));
console.log(str.match(reg_4));

在这里插入图片描述

匹配空格和非空格:

let str="aaa aaa aaa";
let reg_1=/\s/g;//匹配所有空格
let reg_2=/\S/g;//匹配所有非空格
console.log(str.match(reg_1));
console.log(str.match(reg_2));

在这里插入图片描述
数量说明符:

let str_1="naaame";
let str_2="naaaaaaame";
let reg_1=/na{2,4}/g;//表示最少匹配两个a,最多匹配4个a;
let reg_2=/na{2,}/g;//表示最少匹配两个a,最多不限;
let reg_3=/na{3}/g;//表示只匹配三个a;
console.log(str_1.match(reg_1));
console.log(str_1.match(reg_2));
console.log(str_1.match(reg_3));
console.log(str_2.match(reg_1));
console.log(str_2.match(reg_2));
console.log(str_2.match(reg_3));
console.log(reg_1.test(str_2));//值得注意的是这里返回true;str_2中存在naaaa,所以返回ture;

在这里插入图片描述
有或者没有:

let str_1="name";
let str_2="nme";
let reg=/na?me/g;//a后面加?表示a可有可无,都能匹配;
console.log(str_1.match(reg));
console.log(str_2.match(reg));

在这里插入图片描述
正向先行断言,负向先行断言:

let str="name niu";
let reg_1=/n(?=a)/;//正向先行断言;匹配后面是a的n;
let reg_2=/n(?!a)/;//负向先行断言;匹配后面不是a的n;
console.log(str.match(reg_1));
console.log(str.match(reg_2));
//可以看出这两个n并不是一个n;

在这里插入图片描述
混合字符组:

let str_1="name";
let str_2="nane";
let reg=/na(me|ne)/g;//括号里表示na后面可以是me或者ne;
console.log(str_1.match(reg));
console.log(str_2.match(reg));

在这里插入图片描述
捕获组:

let str="name name name";
let reg=/(name)(\s)\1\2\1/g;//\1表示第一个括号\2表示第二个括号
console.log(str.match(reg));

在这里插入图片描述
replace方法:

let str_1="The sky is red";
let reg_1=/red/g;
console.log(str_1.replace(reg_1,"blue"));
//这个方法返回一个替换过的字符串,源字符串并不改变;
let str_2="sky blue";
console.log(str_2.replace(/(\w+)\s(\w+)/g,'$2 $1'));

在这里插入图片描述

标签:console,log,正则表达式,JavaScript,基础,let,str,reg,match
来源: https://blog.csdn.net/weixin_52612800/article/details/119223243

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有