正则表达式
作用:
替换文本,提取字符串,有效性验证
语法:
一个正常的正则表达式的语法:/正则表达式主体/修饰符
RegExp方法:
search() 用于检索字符串中指定的子字符串,或检索与RegExp相匹配的子字符串并返回子串的起始2位置。
replace() 用于字符串中一些字符替换另一些字符,或替换一个与正则表达式相匹配的子串。
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
创建方式:
var newregexp = new RegExp("表达式的式子","g或i或gi或m,即是否全局匹配");
//或者: var newregexp = /表达式/gi
常见的标识符:
1.元字符:
\d 查找数字。
\s 查找空白字符。
\b 匹配单词边界。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
\n 查找换行符
\w 查找单词字符数字、字母、下划线
. 任意字符
*实例:'00\d'
可以匹配'007'
,但无法匹配'00A'。
'\d\d\d'
可以匹配'010'。
'\w\w\d'
可以匹配'py3'。
'py.'
可以匹配'pyc'
、'pyo'
、'py!'
2.方括号
1 2 | [abc] 查找方括号之间的任何字符。[^abc] 查找任何不在方括号之间的字符。 [0-9] 查找任何从 0 至 9 的数字。[a-z] 查找任何从小写 a 到小写 z 的字符。[A-z] 查找任何从大写 A 到小写 z 的字符。(x|y) 查找任何以 | 分隔的选项。 |
3.量词
n+ 匹配任何包含至少一个 n 的字符串。 n* 匹配任何包含零个或多个 n 的字符串。 n? 匹配任何包含零个或一个 n 的字符串。
() [] {}的区别:
() :提取匹配的字符串。有几个()就有几个相应的匹配字符串。
例:(\s*)表示连续空格的字符串。
[]:定义匹配的字符范围
{}:表示匹配的长度
例: \s{3} 表示匹配三个空格,\s[1,3]表示匹配一到三个空格。
综合:[0-9]{0,9} 表示长度为 0 到 9 的数字字符串。
4.^的用法:
限定开头:比如 /^A/会匹配"An e"中的A,但是不会匹配"ab A"中的A
表示否定:[^a]表示“匹配除了a的任意字符”。
实例:
1.
^1[3|4|5|8][0-9]\d{4,8}$
^1代表以1开头,现在中国的手机号没有是其它开头的,以后不一定啊
[3|4|5|8] 紧跟上面的1后面,可以是3或4或5或8的一个数字,如果以后出现190开始的手机号码了,就需要如下[3|4|5|8|9]
[0-9]表示0-9中间的任何数字,可以是0或9
\d{4,8} 这个\d跟[0-9]意思一样,都是0-9中间的数字。{4,8}表示匹配前面的最低4位数字最高8位数字。这里为什么不是直接的8呢,因为手机号码归属地查询的时候,根据前7位就可以知道具体的地址了,后面的4位没有影响的。
2. ^0\d{2,3}-\d{7,8}$
主要意思是匹配一个0开头后跟2到3位的数字加个 - 再跟上 7到8位的数字;
看起来应该是验证电话号码的正则;
^0 匹配输入字符串的开始位置,以0开始;
\d 匹配一个数字字符;
{2,3} 表示2到3位;
- 固定字符;
$ 匹配输入字符串的结束位置;
3.限制第一位3或8,第二位0-9
/[38][0-9]/.test('12') //false
/[38][0-9]/.test('39') //true
手机号验证:
/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/
文件路径校验:
只能以‘//’开头,‘/’结尾。‘///’开头,‘//’结尾也不可以;
/^\/\/[^\/]+.+[^\/]+\/{1}$/.test('//所得税ddreweyyy////wr/uytutyus所得税/')
判断字符串是否为工号:
//工号格式:['SMD','SVR','SDT','ST1','STC']
/^[s|S]+[m|M|v|V|d|D|t|T]+[d|D|r|R|t|T|1|c|C]/.test('sdtd')
判断链接是否为图片链接:
只能包含特定的符号:
例:只能包含数字,小数点,英文逗号:
/^[\d.,]+$/.test('34.43,4')
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法