js 正则表达式
一.前端正则有哪些用处呢
1.有效性验证 - 用户输入格式限制认证,确定用户输入是否满足相应的模式。(电话号码模式或邮箱模式等)
2.文本替换 - 可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字
3.根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字
二.声明一个正则对象
1.使用构造函数方式创建正则表达式
var res = new RegExp();//通过RegExp 创建一个空的正则对象。如同:var arr = new Array();创建一个空数组。
res = new RegExp(''zhan");//创建一个简单模式的正则对象,能够匹配"zhan"这个字符串。
res = new RegExp("zhan",gim); 第一个参数为匹配规则,第二个参数有三个参数,g表示全局匹配,i表示不区分大小写,m表示多行查找
2.使用字面量声明法
var res = /"zhan"/gi //全局查找zhan这个字符串;字面量声明如同:var arr = [1];
三.正则标准
1.^以什么开头,$以什么结尾 (注:当正则中同时添加了^$时,则表示完全匹配真个字符串是否满足要求!)
2.+号表示字符至少要出现1次,*至少出现0次或以上(不出现或者出现一次或多次),\s表示空白字符,\d表示一个数字
3.\b表示单词边界
4.转义字符\,当要匹配特殊字符时候需要对其转义,正则表达式用到的所有元字符 ( [ { \ ^ $ | ) ? * + .
5.字符类 ---〉简单类,反向类,范围类,组合类,预定义类
//简单类
var re = /[abc123]/;//将匹配abc123这6个字符中一个
//负向类
re = /[^abc]/;//将匹配除abc之外的一个字符
//范围类
re = /[a-b]/;//将匹配小写a-b 26个字母
re = /[^0-9]/;//将匹配除0-9 10个字符之处的一个字符
//组合类
re = /[a-b0-9A-Z_]/;//将匹配字母,数字和下划线
6.正则表达式中的预定义类
\d [0-9] 匹配数字
\D [^0-9] 匹配非数字字符
\s [ \n\r\t\f\x0B] 匹配一个空白字符
\S [^ \n\r\t\f\x0B] 匹配一个非空白字符
\w [a-zA-Z0-9_] 匹配字母数字和下划线
\W [^a-zA-Z0-9_] 匹配除字母数字下划线之外的字符
7.量词
量词(下表量词单个出现时皆是贪婪量词)
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。刘, "o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
多行模式
var re = /[a-z]$/;
var str = "ab\ncdef";
alert(str.replace(re,"#"));//ab\ncde#
re =/[a-z]$/mg;
alert(str.replace(re,"#"));//a#\ncde#
常用正则表达式
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
正则方法汇总
1.test
2.exec
3.replace
4.match
let re = /a[a-z]*#/g;
let str ="abf#dcadcabff#abdf#1";
console.log(re.test(str));//true
console.log(str.match(re));//["abf#", "adcabff#", "abdf#"]
console.log(str.replace(re,"#"));//#dc##1
//str.match(re); 返回满足条件的数组
//str.replace(re);返回替换后的字符串
//re.test(str);返回true或false
let str = "this's a string";
let arr = str.match(/[\w']+/g);
console.log(arr); //["this"," is ","a"," string"]
分类:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具