JavaScript RegExp(正则)
第一种方式是直接通过/正则表达式/
写出来,第二种方式是通过new RegExp('正则表达式')
创建一个RegExp对象。
两种写法是一样的:
var re1 = /ABC\-001/;
var re2 = new RegExp('ABC\\-001');re1; // /ABC\-001/
re2; // /ABC\-001/
var re = /^\d{3}\-\d{3,8}$/;
re.test('010-12345'); // true
re.test('010-1234x'); // false
re.test('010 12345'); // false
test()测试给定的字符串是否符合条件
切分字符串
用正则表达式切分字符串比用固定的字符更灵活,请看正常的切分代码:
'a b c'.split(' '); // ['a', 'b', '', '', 'c']
嗯,无法识别连续的空格,用正则表达式试试:'a b c'.split(/\s+/); // ['a', 'b', 'c']
无论多少个空格都可以正常分割。加入,试试:'a,b, c d'.split(/[\s\,]+/); // ['a', 'b', 'c', 'd']
再加入;试试:'a,b;; c d'.split(/[\s\,\;]+/); // ['a', 'b', 'c', 'd']
如果用户输入了一组标签,下次记得用正则表达式来把不规范的输入转化成正确的数组。
分组
除了简单地判断是否匹配之外,正则表达式还有提取子串的强大功能。用()
表示的就是要提取的分组(Group)。比如:
^(\d{3})-(\d{3,8})$
分别定义了两个组,可以直接从匹配的字符串中提取出区号和本地号码:
var re = /^(\d{3})-(\d{3,8})$/;
re.exec('010-12345'); // ['010-12345', '010', '12345']
re.exec('010 12345'); // null
如果正则表达式中定义了组,就可以在RegExp对象上用exec()方法提取出子串来。exec()方法在匹配成功后,会返回一个Array,第一个元素是正则表达式匹配到的整个字符串,后面的字符串表示匹配成功的子串。exec()方法在匹配失败时返回null。
全局搜索
JavaScript的正则表达式还有几个特殊的标志,最常用的是g
,表示全局匹配:
var r1 = /test/g;
// 等价于:
var r2 = new RegExp('test', 'g');
全局匹配可以多次执行exec()
方法来搜索一个匹配的字符串。当我们指定g
标志后,每次运行exec()
,正则表达式本身会更新lastIndex
属性,表示上次匹配到的最后索引:
var s = 'JavaScript, VBScript, JScript and ECMAScript';
var re=/[a-zA-Z]+Script/g;// 使用全局匹配: re.exec(s); // ['JavaScript'] re.lastIndex; // 10 re.exec(s); // ['VBScript'] re.lastIndex; // 20 re.exec(s); // ['JScript'] re.lastIndex; // 29 re.exec(s); // ['ECMAScript'] re.lastIndex; // 44 re.exec(s); // null,直到结束仍没有匹配到
全局匹配类似搜索,因此不能使用/^...$/
,那样只会最多匹配一次。
正则表达式还可以指定i
标志,表示忽略大小写,m
标志,表示执行多行匹配
转载于:https://www.cnblogs.com/chenjf/p/6728766.html
JavaScript RegExp(正则)相关推荐
- JavaScript RegExp 正则对象
文章目录 JavaScript RegExp 正则对象 RegExp 对象 修饰符 test() exec() 方括号 元字符 量词 RegExp 对象方法 支持正则表达式的 String 对象的方法 ...
- 判断字符串 正则_(重学前端 - JavaScript(模块一)) 14、引用类型之 RegExp (正则)(详述)...
上一篇文章介绍了 JavaScript 中的 Date 类型,从地理方面的原理知识开始入手,如果大家认真看过上一篇文章,相信 JavaScript 中的 Date 类型已经难不住大家了!!! 但是今天 ...
- 【JS】javascript正则表达式的基本使用(JavaScript RegExp 对象)
javascript正则表达式的基本使用(JavaScript RegExp 对象) 1. 正则表达式是什么? 2. 基本使用语法 2.1 正则表达式思维导图 2.2 定义正则表达式 2.2.1 普通 ...
- JavaScript 通过正则测试页面是否出现连续的重复字符
在上班的路上,从群里看到有个测试朋友问有没有查看页面上是否有重叠字的工具.从字面意思看,我理解为样式问题导致文字出现堆叠. 他正在对一本上百页的一本说明书进行最后的矫正,检查是否有两个相同的字符连续出 ...
- JavaScript RegExp 身份证、账号密码、email正则
什么是正则表达式 正则表达式是构成搜索模式. 在文本中搜索数据时,可以使用此搜索模式来描述正在搜索的内容. 正则表达式可以是单个字符,也可以是更复杂的模式. 正则表达式可用于执行所有类型的文本搜索和文 ...
- php 只能输入中英文,JavaScript基于正则实现控制输入框中只能输入中文、数字和英文的方法...
这篇文章主要介绍了JavaScript控制输入框中只能输入中文.数字和英文的方法,基于正则验证实现字符输入限制功能,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了Javascript控制输 ...
- [js点滴]JavaScript基础正则详解03
匹配输入字符串的开始位置.要匹配 "^" 字符本身,请使用 "/^" $ 匹配输入字符串的结尾位置.要匹配 "$" 字符本身,请使用 &qu ...
- 正则语法+JavaScript的正则使用
因为前端学习和工作的时候常用到正则,所以总结了一下正则表达式的基础语法和JavaScript怎么去使用正则 一.作用 正则的作用 1)对表单域项目(用户名.密码.邮箱.qq号码.手机等等)进行验证 2 ...
- RegExp 正则
正则:就是一条规则,用于检验字符串的格式,目标就是字符串. 只要是表单提交的数据都是字符串 正则的定义: 1.var reg=new RegExp(): 2.var reg=/格式/: 正则的方法: ...
最新文章
- 金融新手投标模块布局小Demo
- linux的yum update命令
- 数据挖掘基础知识-矩阵(分解)
- 并发编程 — 并发数据结构--转载
- Linux EXT3文件系统下成功恢复误删的文件
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1112:最大值和最小值的差
- oracle字段公式怎么执行,Oracle 在存储过程或函数中执行字符串sql PDF 下载
- 牛客小白月赛13-H(单调栈+树状数组)
- 2:url有规律的多页面爬取
- msp430入门编程47
- java基础学习(6)疯狂java讲义第5章课后习题解答源码
- WPF界面设计辅助工具--Blend
- stm32 带通滤波器_带通滤波器详解_带通滤波器工作原理_带通滤波器原理图
- java服务报错连接超时
- PyTorch基础教程学习笔记(八):训练一个分类器
- cocos2d-x中的box2d(2)-Tumbler
- ORACLE子查询的多种用法
- 带有功利性的做一件事 ?
- 1、mos管的工作原理
- 李文卓:揭秘美丽说数据体系建设三部曲
热门文章
- Oracle基础 TO_CHAR函数参考(转)
- 技术研究院006---B站自用的微服务框架——Kratos
- 大数据之-Hadoop3.x_MapReduce_序列化案例Debug调试---大数据之hadoop3.x工作笔记0101
- k8s高可用集群_搭建高可用集群(部署master1节点初始化)---K8S_Google工作笔记0057
- Netty工作笔记0038---Netty模型--通俗版
- 8 Tactics to Combat Imbalanced Classes in Your Machine Learning Dataset
- 使用setsockopt TCP_NODELAY禁用 Nagle算法
- 华为鸿蒙系统手机央视,央视再次确认!华为投入巨资打造鸿蒙系统生态:体验媲美七成安卓...
- 动态修改路由_tutorial第二部分-路由参数
- 用汇编的眼光看C++(之const属性)