ES2015 正则表达式新增特性
ES2015 正则表达式新增特性:
在原来正则表达式基础上,ES2015增强了对四字节unicode字符的支持等功能。
更多正则表达式内容可以参阅正则表达式教程板块。
一.RegExp构造函数的使用:
在ES2015之前,使用RegExp构造函数创建正则表达式对象有两种方式:
创建方式一:
var reg = new RegExp("antzone","g");
构造函数的第一个参数是正则表达式字符串主体,第二个参数是正则表达式修饰符。
上面的代码等价于下面代码:
var regex = /antzone/g;
创建方式二:
var reg = new RegExp(/antzone/g);
如果参数不是正则表达式字符串,那么只能够有一个参数;下面的写法是错误的:
var reg = new RegExp(/antzone/,g);
不允许使用第二个参数设置正则表达式修饰符。
ES2015改变这一行为,即便是第一个参数是正则表达式对象,也可以规定第二个参数:
var reg = new RegExp(/antzone/gi,"g");
第二个参数规定的正则表达式修饰符会覆盖第一个参数中的修饰符。
二.字符串的正则方法:
正则表达式相关的match()、replace()、search()和split()方法属于字符串对象。
ES2015对此作了修改,当调用这四个方法的时候,实际上内部调用的是RegExp对象的实例方法。
(1).String.prototype.match 调用 RegExp.prototype[Symbol.match]。
(2).String.prototype.replace 调用 RegExp.prototype[Symbol.replace]
(3).String.prototype.search 调用 RegExp.prototype[Symbol.search]
(3).String.prototype.split 调用 RegExp.prototype[Symbol.split]
关于Symbol可以参阅ES2015 Symbol一章节。
三.后行断言(ES2016):
后行断言可以参阅正则表达式零宽断言一章节。
四.新增修饰符:
修饰符 | 描述 |
u修饰符 | 此修饰符标识能够正确处理大于\uFFFF的Unicode字符。 |
y修饰符 | 规定只能从lastIndex属性规定的位置开始进行匹配,匹配失败不会再去尝试后面的字符。 |
五.新增属性:
属性 | 描述 |
sticky属性 | 返回一个布尔值,用来标识是否设置了y修饰符。 |
flags属性 | 返回正则表达式的修饰符。 |
六.新增方法:
方法 | 描述 |
RegExp.escape()(ES2016) |
相关推荐
-
精通JS正则表达式(推荐)
正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 •替换文本.可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字 •根据模式匹配从字符串中提取一个子字符串.可以用来在文本或输入字段中查找特定文字 正则表达式语法 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串
-
ES6正则表达式的一些新功能总结
本文主要总结了ES6正则表达式的一些新功能,分享出来供大家参考学习,下面来看看详细的介绍: 一.构造函数实例化参数的变化 大家都知道,在ES5中,new RegExp(参数1,参数2),参数1若是指定了正则修饰符,则参数2就不应该出现,否则将会报错,在ES6中,第二个参数的正则修饰符会覆盖掉原有的修饰符: <script> //在ES5中,下面的正则自带修饰符ig,则第二个参数不能出现 var reg = new RegExp(/asd/ig); //在ES6中,如下: var reg = n
-
javascript 手机号码正则表达式验证函数 原创
复制代码 代码如下: function checkMobile(){ var sMobile = document.mobileform.mobile.value if(!(/^1[3|4|5|8][0-9]\d{4,8}$/.test(sMobile))){ alert("不是完整的11位手机号或者正确的手机号前七位"); document.mobileform.mobile.focus(); return false;
-
js正则表达式的使用详解
js中的正则表达式比起C#中的正则表达式要弱很多,但基本够用了1定义正则表达式2关于验证的三个这则表达式方法3正则表达式式的转义字符 1定义正则表达式在js中定义正则表达式很简单,有两种方式,一种是通过构造函数,一种是通过//,也就是两个斜杠.例如 复制代码 代码如下: var re =new RegExp("\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}"); 使用构造函数定义正则表达式,注意大小写,负责就会不起作用.由于构造函数的参数是
-
ES6学习笔记之正则表达式和字符串正则方法分析
本文实例讲述了ES6正则表达式和字符串正则方法.分享给大家供大家参考,具体如下: RegExp构造函数 在ES5中,RegExp构造函数的参数有两种情况. 第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag). var regex = new RegExp('xyz', 'i'); // 等价于 var regex = /xyz/i; 第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝. var regex = new RegExp(/xyz/i);
-
js 常用正则表达式表单验证代码
正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下:测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证.替换文本.可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字.根据模式匹配从字符串中提取一个子字符串.可以用来在文本或输入字段中查找特定文字. 基本语法 在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表
-
JS正则表达式大全(整理详细且实用)
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*". ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配&q
-
比较正宗的验证邮箱的正则表达式js代码详解
fuchangxi的正则: 复制代码 代码如下: /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/ 开始必须是一个或者多个单词字符或者是-,加上@,然后又是一个或者多个单词字符或者是-.然后是点"."和单词字符和-的组合,可以有一个或者多个组合. 复制代码 代码如下: <script type="text/javascript"> function isEmail(str){ var reg =
-
ES2015 正则表达式新增特性
ES2015 正则表达式新增特性: 在原来正则表达式基础上,ES2015增强了对四字节unicode字符的支持等功能. 更多正则表达式内容可以参阅正则表达式教程板块. 一.RegExp构造函数的使用: 在ES2015之前,使用RegExp构造函数创建正则表达式对象有两种方式: 创建方式一: var reg = new RegExp("antzone","g"); 构造函数的第一个参数是正则表达式字符串主体,第二个参数是正则表达式修饰符. 上面的代码等价于下面代码:
-
MySQL8.0.11版本的新增特性介绍
MySQL 8.0 for Windows v8.0.11 官方免费正式版 64位 一. 数据字典(Data dictionary) 1)合并了存储数据库对象信息的事务性数据字典:之前版本是存储于元数据文件和非事务表中 : 二.原子数据定义语句(原子DDL)(Atomic Data Definition Statements (Atomic DDL)) 三.安全性和账户管理(Security and account management) 1)A new caching_sha2_passwor
-
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
本文实例总结了php5.3/5.4/5.5/5.6/7新增特性.分享给大家供大家参考,具体如下: php新增的特性,只是略微整理,并不完全. 一.php5.3添加的新特性 1.?:简化的三元运算符 <?php $cur = $cur ? $cur : 1; $cur = $cur ?: 1; 2.匿名函数 <?php $test = function() { echo 'test'; }; $test(); $arr = array(1, 2, 3, 4, 5); $arr = array_m
-
React18新增特性released的使用
目录 新功能:Automatic Batching 新功能:Transitions 新的Suspense功能 新的客户端和服务器Rendering APIs React DOM Client React DOM Server 新的Strict Mode Behaviors 新Hooks React 18 中的新增功能 新功能:Automatic Batching 批处理是指 React 将多个状态更新分组到单个重新呈现中以获得更好的性能.在没有自动批处理的情况下,我们只在 React 事件处理程
-
React18新增特性介绍
React 18 最新的特性批处理文件在同一个 函数中, 调用多次 useState 也只是会更新一次 function App() { const [count, setCount] = useState(0); const [flag, setFlag] = useState(false); function handleClick() { setCount(c => c + 1); // 不触发re-render setFlag(f => !f); // 不触发re-render //
-
正则表达式u修饰符(支持UTF-16编码)
正则表达式u修饰符: 此修饰符标识能够正确处理大于\uFFFF的Unicode字符. 也就是说,会正确处理四个字节的UTF-16编码. 此修饰符是ES2015新增,更多正则表达式新特性可以参阅ES2015 正则表达式新增特性一章节. 更多正则表达式教程可以参阅正则表达式教程板块. 代码实例: console.log(/^\uD842/u.test("\uD842\uDFB7")) 输出false,由于"\uD842\uDFB7"是一个四个字节的UTF-16编码,代表
-
JavaScript ECMAScript 6(ES2015~ES2022)所有新特性总结
目录 前言 ES2015(ES6) let.const关键字和块级作用域 函数的扩展 数值的扩展 字符串的扩展 数组的扩展 对象的扩展 类 模块化 解构赋值 Symbol Promise Iterator Generator Proxy和Reffect Set.Map.WeakSet.WeakMap ES2016(ES7) 指数运算符 Array.prototype.includes()方法 ES2017(ES8) async/await语法糖 Atomics对象 对象扩展 函数扩展 字符串扩展
-
一篇文章搞懂JavaScript正则表达式之方法
咱们来看看JavaScript中都有哪些操作正则的方法. RegExp RegExp 是正则表达式的构造函数. 使用构造函数创建正则表达式有多种写法: new RegExp('abc'); // /abc/ new RegExp('abc', 'gi'); // /abc/gi new RegExp(/abc/gi); // /abc/gi new RegExp(/abc/m, 'gi'); // /abc/gi 它接受两个参数:第一个参数是匹配模式,可以是字符串也可以是正则表达式:第二个参数是
-
探索webpack模块及webpack3新特性
本文从简单的例子入手,从打包文件去分析以下三个问题:webpack打包文件是怎样的?如何做到兼容各大模块化方案的?webpack3带来的新特性又是什么? 一个简单的例子 webpack配置 // webpack.config.js module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }, }; 简单的js文件 // sr
-
你应该知道的Python3.6、3.7、3.8新特性小结
很多人在学习了基本的Python语言知识后,就转入应用阶段了,后期很少对语言本身的新变化.新内容进行跟踪学习和知识更新,甚至连已经发布了好几年的Python3.6的新特性都缺乏了解. 本文列举了Python3.6.3.7.3.8三个版本的新特性,学习它们有助于提高对Python的了解,跟上最新的潮流. 一.Python3.6新特性 1.新的格式化字符串方式 新的格式化字符串方式,即在普通字符串前添加 f 或 F 前缀,其效果类似于str.format().比如 name = "red"
随机推荐
- Android编程自定义Notification实例分析
- C语言中数组作为函数的参数以及返回值的使用简单入门
- php获取当前页面完整URL地址
- jQuery将表单序列化成一个Object对象的实例
- 一些php项目中比较通用的php自建函数的详解
- php 用checkbox一次性删除多条记录的方法
- C# Linq读取XML文件的实例
- Android自定义View实现内存清理加速球效果
- 扒一扒JavaScript 预解释
- IIS 301重定向与程序代码实现301重定向的差别
- 将json转换成struts参数的方法
- python操作mysql数据库
- Ajax提交与传统表单提交的区别说明
- Microsoft 发布5个新的安全补丁
- php设置允许大文件上传示例代码
- 初识Java设计模式适配器模式
- Android编程中File文件常见存储与读取操作demo示例
- iOS App引导页开发教程
- Android开发中Widget的生命周期实例分析
- VS Code转换大小写、修改选中文字或代码颜色的方法