如何正确编写JS正则表达式,避免pattern设置中的常见错误?

2026-03-30 09:060阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2248个文字,预计阅读时间需要9分钟。

如何正确编写JS正则表达式,避免pattern设置中的常见错误?

RegExp对象的创建:直接使用正则表达式的创建方法,即使用斜杠(/)加括起来的字符。这是最直接的方式,例如:/w/g。但在需要参数变量变化的环境下,使用RegExp构造函数是更好的选择:var reg1=/w/g; var reg2=new RegExp('\'\w\'');

RegExp对象的创建:

  常规的正则表达式的创建可用直接量,即斜杠 “/” 括起来的字符。但在要求参数变化的环境下,RegExp()构造函数是更好的选择:

var reg1 = /'\w+'/g; var reg2 = new RegExp('\'\\w+\'','g');

  对比两种创建方式,RegExp中的第一个参数为要创建的正则字符串,一方面注意,因为不是直接量的表示形式,因此不用斜杠“ / ”括起来了;而是字符串中必须要对引号“ ‘ ”和转义符号“ \ ”进行二次转义。

  此外,无论是直接量还是RegExp()构造函数,都是生成了新的RegExp对象,并将其赋值给变量。

在《Javascript权威指南》一书中讲到,对于正则表达式的直接量,ECMAscript 3规定在每次它时都会返回同一个RegExp对象,因此用直接量创建的正则表达式的会共享一个实例。直到ECMAScript 5才规定每次返回不同的实例。

各浏览器中,IE一直遵守ECMAScript 5中的规定,其他浏览器的较老版本则遵循ECMAScript 3的规定。因此在实际应用中,采取构造函数创建的方法比较安全,或者在使用lastIndex属性时要记得归0。

阅读全文

本文共计2248个文字,预计阅读时间需要9分钟。

如何正确编写JS正则表达式,避免pattern设置中的常见错误?

RegExp对象的创建:直接使用正则表达式的创建方法,即使用斜杠(/)加括起来的字符。这是最直接的方式,例如:/w/g。但在需要参数变量变化的环境下,使用RegExp构造函数是更好的选择:var reg1=/w/g; var reg2=new RegExp('\'\w\'');

RegExp对象的创建:

  常规的正则表达式的创建可用直接量,即斜杠 “/” 括起来的字符。但在要求参数变化的环境下,RegExp()构造函数是更好的选择:

var reg1 = /'\w+'/g; var reg2 = new RegExp('\'\\w+\'','g');

  对比两种创建方式,RegExp中的第一个参数为要创建的正则字符串,一方面注意,因为不是直接量的表示形式,因此不用斜杠“ / ”括起来了;而是字符串中必须要对引号“ ‘ ”和转义符号“ \ ”进行二次转义。

  此外,无论是直接量还是RegExp()构造函数,都是生成了新的RegExp对象,并将其赋值给变量。

在《Javascript权威指南》一书中讲到,对于正则表达式的直接量,ECMAscript 3规定在每次它时都会返回同一个RegExp对象,因此用直接量创建的正则表达式的会共享一个实例。直到ECMAScript 5才规定每次返回不同的实例。

各浏览器中,IE一直遵守ECMAScript 5中的规定,其他浏览器的较老版本则遵循ECMAScript 3的规定。因此在实际应用中,采取构造函数创建的方法比较安全,或者在使用lastIndex属性时要记得归0。

阅读全文