RegExp(正则)
目录
- 1、字符含义
- 2、方法
- 2.1、正则表达式相应的方法
- 2.2、相关链接链接
- 3、常用的正则集合
1、字符含义
字符 | 说明 |
---|---|
\ | 在非特殊字符之前的反斜杠表示下一个字符是特殊字符,不能按照字面理解。 |
^ | 匹配输入的开始。如果多行标志被设置为 true,那么也匹配换行符后紧跟的位置。 |
$ | 匹配输入的结束。如果多行标志被设置为 true,那么也匹配换行符前的位置。 |
* | 匹配前一个表达式 0 次或多次。等价于 {0,}。 |
+ | 匹配前面一个表达式 1 次或者多次。等价于 {1,}。 |
? | 匹配前面一个表达式 0 次或者 1 次。等价于 {0,1}。 |
. | 默认匹配除换行符之外的任何单个字符。 |
\s | 匹配一个空白字符,包括空格、制表符、换页符和换行符。等价于[ \f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]。 |
\S | 匹配一个非空白字符。等价于 [^ \f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]。 |
\d | 匹配 0-9 之间的任一数字,相当于 [0-9] |
\D | 匹配所有 0-9 以外的字符,相当于 [^0-9] |
[\b] | 匹配一个退格(U+0008)。(不要和\b混淆了。) |
\b | 匹配一个词的边界。一个词的边界就是一个词不被另外一个“字”字符跟随的位置或者前面跟其他“字”字符的位置,例如在字母和空格之间。注意,匹配中不包括匹配的字边界。换句话说,一个匹配的词的边界的内容的长度是0。(不要和[\b]混淆了) |
\w | 匹配任意的字母、数字和下划线,相当于 [a-zA-Z0-9_] |
\w | 除所有字母、数字和下划线 以外的字符,相当于 [^a-zA-Z_] |
\s | 匹配空格(包括换行符、制表符、空格等),相当于 [\t\r\n\v\f] |
\S | 匹配非空格的字符,相当于 [^\t\r\n\v\f] |
{n} | n 是一个正整数,匹配了前面一个字符刚好出现了 n 次。 |
{n,} | n 是一个正整数,匹配前一个字符至少出现了 n 次。 |
{n,m} | n 和 m 都是整数。匹配前面的字符至少 n 次,最多 m 次。如果 n 或者 m 的值是 0, 这个值被忽略。 |
x|y | 匹配‘x’或者‘y’。 |
(abc) | 优先级匹配,优先级最高;整体匹配。匹配 abc ,abc 是个整体 |
2、方法
2.1、正则表达式相应的方法
序号 | 方法(函数) | 说明 |
---|---|---|
1 | RegExp.prototype.exec() |
exec() 方法在一个指定字符串 中执行一个搜索匹配。返回一个结果数组或null 。
|
2 | RegExp.prototype.test() |
test() 方法执行一个检索,用来查看正则表达式与指定的字符串 是否匹配。返回 true 或 false 。
|
3 | String.prototype.split() |
split() 方法使用指定的分隔符字符串将一个 String 对象分割成字符串数组,以一个指定的分割字串来决定每个拆分的位置。
|
4 | String.prototype.replace() |
replace() 方法返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。如果pattern是字符串,则仅替换第一个匹配项。
|
5 | String.prototype.search() |
search() 方法执行正则表达式和 String 对象之间的一个搜索匹配。
|
6 | String.prototype.matchAll() |
matchAll() 方法返回一个包含所有匹配正则表达式的结果及分组捕获组的迭代器。
|
7 | String.prototype.match() |
match() 方法检索返回一个字符串匹配正则表达式的结果。
|
2.2、相关链接链接
1、MDN官网
3、常用的正则集合
正则集合 | 功能说明 | result(结果) |
---|---|---|
/^[1-9]{1}\d{0,2}$/
|
校验1~3位纯数字,且第1位不能为0 | – |
/^[1-9]{1}[0-9]{0,2}$/
|
校验1~3位纯数字,且第1位不能为0 | – |
/^1[3|4|5|7|8]\d{9}$/
|
校验手机号 | – |
/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/
|
校验手机号 | – |
/^[a-zA-Z]\w{5,17}$/
|
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线) | – |
/^\d{6}$/
|
精确6位数数字密码强匹配 | – |
/^(-?\d{1,3})(\.\d{2})?$/
|
匹配1~3位正整数或者负整数,同时匹配2位小数 | – |
/^(0?[1-9]|1[0-2])$/
|
匹配12个月 | – |
/^((0?[1-9])|((1|2)[0-9])|30|31)$/
|
匹配1个月的31天 | – |
'可以交换微信号或者QQ号码?'.replace(/微信|qq/ig, '-')
|
替换敏感词 | 可以交换–号或者–号码? |
'I miss you'.replace(/\s+/g, '')
|
删除(替换)空格 | Imissyou |
'159你好357+-sdkflskfhlk258'.match(/\d+/g)
|
截取所有数字 | [1,5,9,3,5,7,2,5,8] |
'I miss you 520 你好'.replace(/[^\a-\z\A-\Z]/g, '')
|
只保留字母 | Imissyou |
'I miss you 520 你好'.replace(/[^0-9]/g, '')
|
只保留数字 | 520 |
'I miss you'.replace(/\b[a-zA-Z]+\b/g, i => { return i.charAt(0).toUpperCase() + i.substring(1); })
|
单词首字母转大写 | I Miss You |
let a = '[0-9]', b = 'abc', reg = RegExp(a + b)
|
在正则的两个斜杠间加变量 | – |
value.replace(/^[0]+[0-9]*|[^0-9]*$/, '')
|
匹配正整数,且第一位不能0 | – |
new RegExp((.\*)(\${value.split('').join(')(.\*)(')})(.\*), 'i')
|
模糊匹配 | 注意:正则需要使用 模板字符串 包裹 |
Number('id7'.replace(/[^0-9]/ig, '')
|
截取字符串中的数字 | 7 |
– | – | – |
– | – | – |
– | – | – |
– | – | – |
– | – | – |
– | – | – |
– | – | – |
– | – | – |
– | – | – |
– | – | – |
RegExp(正则)相关推荐
- JavaScript RegExp 正则对象
文章目录 JavaScript RegExp 正则对象 RegExp 对象 修饰符 test() exec() 方括号 元字符 量词 RegExp 对象方法 支持正则表达式的 String 对象的方法 ...
- RegExp 正则
正则:就是一条规则,用于检验字符串的格式,目标就是字符串. 只要是表单提交的数据都是字符串 正则的定义: 1.var reg=new RegExp(): 2.var reg=/格式/: 正则的方法: ...
- 判断字符串 正则_(重学前端 - JavaScript(模块一)) 14、引用类型之 RegExp (正则)(详述)...
上一篇文章介绍了 JavaScript 中的 Date 类型,从地理方面的原理知识开始入手,如果大家认真看过上一篇文章,相信 JavaScript 中的 Date 类型已经难不住大家了!!! 但是今天 ...
- new RegExp / / 正则
正则(RegExp) 定义:正确的规则 它是专门来操作(检:检查,索:搜索)(模糊范围的)字符串的一种规则. 简写: /规则和字符串(不带引号的字符串)/ /d/ 标准写法: new Re ...
- MySQL中REGEXP正则查询同一个字段模糊搜索
2019独角兽企业重金招聘Python工程师标准>>> SELECT name FROM dev WHERE name REGEXP 'PHP|SQL'; 查询name包含php或者 ...
- tp5中mysql使用REGEXP 正则匹配
tp5.0中没有regexp,但是可以用exp表达式sql正则表达式语句:select * fron 表名称 where name regexp 'ok$'; $result = model('表名称 ...
- LintCode MySQL 1968. 查询首两个字母在 ‘Db‘ 和 ‘Dy‘ 之间的课程名称(REGEXP正则)
文章目录 1. 题目 2. 解题 1. 题目 描述 请编写 SQL 语句,查询 courses 表中,课程名首两个字母在 'Db' 和 'Dy' 之间所有课程的名称 https://www.lintc ...
- JavaScript RegExp(正则)
第一种方式是直接通过/正则表达式/写出来,第二种方式是通过new RegExp('正则表达式')创建一个RegExp对象. 两种写法是一样的: var re1 = /ABC\-001/; var re ...
- 2013年5月7日---JS中的正则
/*(1)RegExp对象的test方法------------------C#中的isMatch var num='1d23'; //一个字符串 var reg=ne ...
- jsr 正则验证_Java数据校验(Bean Validation / JSR303)
#简介 JSR303是JAVA EE6中的子规范.用于对Java Bean的字段值进行校验,确保输入进来的数据在语义上是正确的,使验证逻辑从业务代码中脱离出来.JSR303是运行时数据验证框架,验证之 ...
最新文章
- 数据验证html,JavaScript 表单数据验证
- 排序算法总结之堆排序
- 创建CSS和处理的一些方法
- vue-cli3.0 Typescript 项目集成环信WebIM 群组聊天
- 最健康的睡眠时间究竟是多少?
- idea 分支管理插件_Git的分支管理常用命令
- C/C++中从文件末尾反向读取N行文件记录(末尾读取文件)
- Javascript第二章if选择结构第一课
- html微信窗口阻止滚动条,微信浏览器禁止页面下拉查看网址(不影响页面内部scroll)...
- 对华为HG255D路由器进行JTAG调试的进一步研究
- Windows XP 禁用屏幕保护功能
- Android基础入门教程——7.5.4 WebView文件下载
- oracle中索引的类型,oracle索引类型normal
- Indy相关函数用法
- python使用seek函数报错:io.UnsupportedOperation: can't do nonzero end-relative seeks
- 摇篮式五轴与主轴摆动式五轴加工中心的区别
- 【教学类-30-02】10以内加法题不重复(一页两份)(包括6以内、7以内、8以内、9以内、10以内加法题 只抽取25个)
- 基于ESP8266的人体红外感应报警系统设计
- 解决Vs2015+Qt+obs studio配置软件环境问题汇总
- 深度剖析CMOS、FinFET、SOI和GaN工艺技术