JavaScript正则学习笔记
RegExp
元字符
' . ' 点号:匹配任意的字符
^ $ 位置字符
- ^ 匹配字符串开始的位置
- $ 匹配字符串结束的位置
匹配数字和非数字 \d 和 \D
匹配空白字符 \s 和 \S
- \s 匹配空白字符
- \S 匹配非空白字符
中文 unicode 码 的区间 [\u4e00-\u9fa5]
[] 匹配里面的任意字符
[^a-z] 匹配除a到z之外的所有字符
`+` 匹配一次或者 多次 (所约束的条件必须存在,不然无法匹配)
var reg = /[mM][jJ]+/g
//可以这样写
var reg = /[m][j]+/gi
// 是匹配的时候不区分大小写
`*` 匹配 0 次或者 多次 (真正意义 上的可有可无)


- 加号和星号的区别
`?` 匹配重复的一次或者是零次 ( 所受约束的条件可有至多为一次,可无为零次)
原子组 ()
- 捕获的方法: RegExp.$1 $2 $3
- 有多少个组,就可以使用$num来获取第几组所匹配的字符串
| 或者
`?:` 分组匹配不捕获

正向预查
?= 无正向肯定预查 表示肯定是元 ,但不匹配

- ?! 元 正向否定预查 表示肯定不是元,不匹配 **
!

? <= ¥ 反向肯定预查 表示肯定是¥ ,但不匹配**

?<! ¥ 反向否定 预查 表示肯定不是¥,不匹配**


重复类 /[\d]{0,12}/g 大括号内表示的是所匹配的的长度,(也就是所匹配的字符的重复次数)
正则实例对象的方法
test()
- 返回一个布尔值,表示当前模式是否能匹配参数字符串
reg.exec(str)
- 用来返回匹配的结果,如果发现匹配,就返回一个数组,数组中的成员都是匹配的子字符串,否则返回null
字符串方法
- match()
- 对字符串进行正则匹配,返回匹配的结果

- search()
- 返回第一个满足条件的匹配结果在整个字符串中的位置,如果没有任何匹配,则返回-1

- replace()
- 可以替换匹配的值,它接受两个参数,第一个是正则表达式,表示搜索模式,第二个是替换的内容

验证用户账号

验证手机号码
function checkPhone(phone){
var reg = /^1[3|5|6|7|8|9|]\d{9}$/g;
if(reg.test(phone)){
console.log(`此 ${phone} 手机号码格式正确`)
}else{
console.log(`此 ${phone} 手机号码格式错误`)
}
}
console.log('手机号码验证')
checkPhone('12312312312')
checkPhone('16677777 ')
checkPhone('166777770000')
checkPhone('17775646924')
console.log('\n\n座机号码验证')
function checkTelPhone(phone){
var reg = /^0\d{2,3}-?\d{7,8}/g;
if(reg.test(phone)){
console.log(`此 ${phone} 座机号码格式正确`)
}else{
console.log(`此 ${phone} 座机号码格式错误`)
}
}
checkTelPhone("0108888888")
checkTelPhone("01088888889")
checkTelPhone("0108-8888889")
checkTelPhone("01088-888889")
checkTelPhone("1088-888889")
checkTelPhone("088-8888811")
checkTelPhone("088-888889")

// 匹配身份证号
// 18 位或者15位,15位全是数字 18位 前17都是数字,最后一位可能是数字或者字符x或X
function checkId(id){
var reg = /(^\d{15}$)|(^\d{17}[x|\d]$)/gi;
console.log(reg.test(id)? "正确":"错误");
}
checkId('123456789012345678')
checkId('12345678901234567x')
checkId('12345678901234567X')
checkId('123456789012345')
console.log("---------")
checkId('12345678901234')
checkId('1234567890123456789')
checkId('12345678901234567a')

//匹配邮箱
// 第一部分@ 第二部分 .com | cn | net
function checkEmail(email){
var reg = /^\w+@\w+\.(com|cn|net|cc)$/gi;
console.log(reg.test(email) ? "邮箱格式正确":"邮箱格式错误");
}
checkEmail("pphboy@qq.com")
checkEmail("pphboy@123.com")
checkEmail("pphboy@123com")
checkEmail("pphboy123.com")

JavaScript正则学习笔记的更多相关文章
- javascript正则表达式 - 学习笔记
JavaScript 正则表达式 学习笔记 标签(空格分隔): 基础 JavaScript 正则表达式是用于匹配字符串中字符组合的模式.在javascript中,正则表达式也是对象.这些模式被用于Re ...
- JavaScript正则表达式学习笔记(二) - 打怪升级
本文接上篇,基础部分相对薄弱的同学请移步<JavaScript正则表达式学习笔记(一) - 理论基础>.上文介绍了8种JavaScript正则表达式的属性,本文还会追加介绍几种JavaSc ...
- JavaScript简易学习笔记
学习地址:http://www.w3school.com.cn/js/index.asp 文字版: https://github.com/songzhenhua/github/blob/master/ ...
- javaScript 对象学习笔记
javaScript 对象学习笔记 关于对象,这对我们软件工程到学生来说是不陌生的. 因为这个内容是在过年学到,事儿多,断断续续,总感觉有一丝不顺畅,但总结还是要写一下的 JavaScript 对象 ...
- 【MarkMark学习笔记学习笔记】javascript/js 学习笔记
1.0, 概述.JavaScript是ECMAScript的实现之一 2.0,在HTML中使用JavaScript. 2.1 3.0,基本概念 3.1,ECMAScript中的一切(变量,函数名,操作 ...
- Javascript MVC 学习笔记(一) 模型和数据
写在前面 近期在看<MVC的Javascript富应用开发>一书.本来是抱着一口气读完的想法去看的.结果才看了一点就傻眼了:太多不懂的地方了. 仅仅好看一点查一点,一点一点往下看吧,进度虽 ...
- Javascript作用域学习笔记(三)
看完<你不知道的javascript>上,对作用域的新的理解(2018-9-25更) 一.学习笔记: 1.javascript中的作用域和作用域链 + 每个函数在被调用时都会创建一个 ...
- Javascript - Promise学习笔记
最近工作轻松了点,想起了以前总是看到的一个单词promise,于是耐心下来学习了一下. 一:Promise是什么?为什么会有这个东西? 首先说明,Promise是为了解决javascript异步编 ...
- JavaScript闭包学习笔记
此文都是大牛们关于闭包的观点,在此只是总结. 闭包应用的两种情况即可——函数作为返回值,函数作为参数传递. 1 深入理解javascript原型和闭包 判断一个变量是不是对象非常简单.值类型的类型判断 ...
随机推荐
- anaconda 取消每次默认启动base环境
安装conda后取消命令行前出现的base,取消每次启动自动激活conda的基础环境 方法一: 每次在命令行通过conda deactivate退出base环境回到系统自动的环境 方法二 1,通过将a ...
- nginx安全:配置allow/deny控制ip访问(ngx_http_access_module)
一,nginx中allow/deny指令的用途 1, Nginx的deny和allow指令是由ngx_http_access_module模块提供, Nginx安装默认内置了该模块 2, nginx访 ...
- 第六章 SSH远程服务介绍
一.相关介绍 1.简介SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输.确保了数据传输安全.那SSH服务主要功能有哪些呢? 1)提供远程连接的服务 linux远程连 ...
- 对于某东平台XX娃娃的用户体验进行(严肃、限速)数据分析
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本次的爬取目标是某东的一个商品,但从来没有用过,所以本人很好奇.我们就采集这 ...
- windows下安装mongodb4.x版本
一个无名前辈的血汗经验,提醒来者 现在mongod出到4.x的版本,而网上的大多数教程是针对3.x的版本的.在4.x的版本中,不要再试图使用自定义安装,我搞了3个多小时都没搞定,如果土豪c盘很大,直接 ...
- Jmeter入门(1)- 什么是Jmeter以及Jmeter的安装和环境配置
一. Jmeter简介 Jmeter时Apacha公司使用Java平台开发的一款测试工具 二. Jmeter可以做什么 Jmeter可以用来做接口测试.性能测试.压力测试.数据库测试.Java程序测试 ...
- RedisManager2020.4最最最最简单的破解方式
前言 redis manager是一款很优秀的redis数据库可视化工具,果然优秀的软件最终都走向了收费,贫民玩家越来越难了.赶时间的直接拉到最后,有下载方式. 破解 无需破解,已是破解版 安装 下载 ...
- 初学 Python 需要安装哪些软件?
自动配置.有效求助.协作编程.版本控制.一站式解决 Python 新手练习中的痛点. 痛点 这个学期,我在北得克萨斯大学(University of North Texas)教 INFO 5731: ...
- 《JavaScript高级程序设计》——第一章JavaScript简介
第一章主要讲了JavaScript的诞生和发展.刚刚接触JavaScript的我,似乎对这些内容并不感兴趣,快速看了一遍就开始去看第二章了. 看完第一章,收获也就是了解到JavaScript由ECMA ...
- mysql报错10061和10038
用navicat连接报错10038,用sqlyog报错10061,又去查看服务,发现服务丢失 经过一系列的查阅资料,用下面的方式解决了问题 1.用管理员的方式打开命令行窗口 2.进入mysql的bin ...