js小白之路(八)——正则表达式
正则表达式:RegEnts。专门验证字符串中字符出现的规则的定义规则,若不符合规则,提示错误。写在//中
/[备选字符]/
/[1,2,3]/ 表示输入1、2、3都对,一个[]只能代表一位字符的匹配规则,几位数就有几个[]。
例如手机号的匹配:
var reg=/[1][3456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789][0123456789]/
显而易见,这种形式的正则表达式实在是太麻烦了,进一步简化:正则表达式对任何连续的区间都可以用横线连接。
var reg=/[1][3-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
对于后9位数字,是重复的,有没有规则做到相同的规则只需要写一次?那必然是有的:数量词写在{}中表示前一位规则重复多少次
var reg=/[1][3-9][0-9]{9}/
若想修饰多位规则,可以加小括号:
var reg=/[1]([3-9][0-9]){9}/; 此时表示的是19位数的正则表达式
{}表示规则重复次数的完整说明:{num},重复num次;{min,},至少重复min次;{min,max},至少重复min次,至多重复max次。
特殊数量词:
1. ? 代表前面一位规则可有可无,最多一次
2. * 代表前一位规则可有可无,不限次数,相当于{0,}
3. + 代表前一位至少出现一次,相当于{1,}
预定义字符集:
\d:代表所有数字,相当于[0-9];
\w:所有数字、字母、下划线,范围比\d更广;
\s:空格;
· (圆点):任意字符;
[]里若只有1位备选字符或只有一个预定义字符集,[]可以省略;
注意对于在正则表达式里有特殊含义的字符要想作为普通字符用,要用反斜线“\”转义。
综上,最终简化的手机号正则表达式为:
var reg=/1[3-9]\d{9}/
字符串的检验方法:test(),用来检验字符串格式是否正确,返回boolean值
reg.test("被检验的数据")
var reg=/1[3-9]\d{9}/
var num="18932785677";
if(reg.test(num)){
alert("成功!")
}else{
alert("手机号格式有误")
}
注意!test方法默认部分匹配,即找一段连续的能匹配的,前后是否多内容无影响,所以直接用test匹配可能会出现形式错误但匹配成功的情况。解决:在整个正则表达式的开头加^代表以……开头,在整个表达式的结尾加$,代表以……结尾
var reg=/^1[3-9]\d{9}$/
再写一个邮箱的正则表达式:
/^\w+@\w([-]\w+)*(\.\w+)+$/
js小白之路(八)——正则表达式相关推荐
- js小白之路(十一)——原型与继承
原型:prototype.方法背后,专门保存由方法创建出来的对象的共有数据 构造函数(对象模板):专门用来反复创建相同结构的对象的专门的方法.new后面跟的都是构造函数. function Stude ...
- [js高手之路]从原型链开始图解继承到组合继承的产生
于javascript原型链的层层递进查找规则,以及原型对象(prototype)的共享特性,实现继承是非常简单的事情 一.把父类的实例对象赋给子类的原型对象(prototype),可以实现继承 1 ...
- [js高手之路]原型对象(prototype)与原型链相关属性与方法详解
一,instanceof: instanceof检测左侧的__proto__原型链上,是否存在右侧的prototype原型. 我在之前的两篇文章 [js高手之路]构造函数的基本特性与优缺点 [js高手 ...
- 【GISer小O】JAVA后台的小白之路(一)_2 ——分分合合三剑客
[GISer小O]JAVA后台的小白之路(一)_2 --分分合合三剑客 本文简单介绍Web开发中的三剑客:HTML/CSS/Javascript,阐述其关系.然后用示例demo讲解三者的分分合合.相关 ...
- 原生js由html创建节点,[js高手之路]HTML标签解释成DOM节点的实现方法
最近在封装一个开源框架,已经写了500行, 已经具备jquery的大多数常用功能,后面还会扩展大量的工具函数和MVVM双向驱动等功能.跟jquery的使用方法完全一样,jquery的选择器,几乎都能支 ...
- [js高手之路]设计模式系列课程-发布者,订阅者重构购物车
发布者订阅者模式,是一种很常见的模式,比如: 一.买卖房子 生活中的买房,卖房,中介就构成了一个发布订阅者模式,买房的人,一般需要的是房源,价格,使用面积等信息,他充当了订阅者的角色 中介拿到卖主的房 ...
- [js高手之路]打造通用的匀速运动框架
本文,是接着上文[js高手之路]匀速运动与实例实战(侧边栏,淡入淡出)继续的,在这篇文章的最后,我们做了2个小实例:侧边栏与改变透明度的淡入淡出效果,本文我们把上文的animate函数,继续改造,让他 ...
- [js高手之路]深入浅出webpack教程系列9-打包图片(file-loader)用法
[js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件we ...
- [js高手之路] html5 canvas系列教程 - 线条样式(lineWidth,lineCap,lineJoin,setLineDash)
上文,写完弧度与贝塞尔曲线[js高手之路] html5 canvas系列教程 - arcTo(弧度与二次,三次贝塞尔曲线以及在线工具),本文主要是关于线条的样式设置 lineWidth: 设置线条的宽 ...
最新文章
- java 自带thread分析工具_java自带的jvm分析工具
- HDU - 3364 Lanterns(高斯消元解方程(取模))
- 《Python参考手册(第4版•修订版)》——1.4 文件输入和输出
- 服务器损坏mysql修复_云服务器mysql数据库损坏修复mysql
- Codeforces Round #615 (Div. 3) A-F
- 小程序 报错errMsg: “hideLoading:fail:toast can‘t be found“ ?
- 拜登政府撤销对Tik Tok和Wechat禁令 启动对外国应用审查
- 使用Arcpy进行数据批处理-批量裁剪
- linux PDF转换为SWF
- 阿克曼函数求解(递归和非递归)
- php进度台帐管理系统,捷雅途 - 工程量0号台账管理系统快速操作说明
- 离线使用yum·无法使用yum的情况下安装软件·最简单的方法
- 华为云学院新春大礼包:场景化微认证上新了!
- 常用网络命令:ping命令的使用
- tableview中cell折叠的功能
- swiper 轮播 多行多列 横向排列
- 智能车八邻域图像算法
- android 腾讯x5浏览器,【Android Web】腾讯X5浏览器的集成与常见问题
- micropython stm32f429 tft_基于STM32F429的TFT0.96屏幕驱动
- 高级工程师面试 - PHP
热门文章
- java stringtokenizer_java StringTokenizer用法
- 卡通农场安卓服务器无响应,《最强蜗牛》游戏进不去怎么办 服务器无响应解决办法分享...
- 获得UAA access token
- Hexo Next开启阅读全文
- 用php打出2020年是庚子鼠年,关于2020庚子鼠年,你应该知道的事儿
- 为什么tcp的TIME_WAIT状态要维持2MSL
- 矩阵的相似与特征值和特征向量定义
- 20、Gateway 过滤器
- 可爱风PPT模板,专门为老师打造的儿童风格PPT模板
- greys线上调试代码