JavaScript RegExp对象

我尝试用 JavaScript编写一个简单的Markdown解析器.因此,我想检查[link content] [link id]语法.我使用以下代码

data = data.replace( /\[(.*?)\][ ]*\[([0-9]+)\]/g,'<a href="$2">$1</a>' );

它工作得很好,但现在我想用RegExp对象来做这件事.所以我设置了以下代码

var r = new RegExp( '\[(.*?)\][ ]*\[([0-9]+)\]','g' );
data = data.replace( r,'<a href="$2">$1</a>' );

但它不起作用.它甚至说我的正则表达式(自第一个例子以来工作得很好)是无效的:

unmatched ) in regular expression

我认为它必须与我不知道的一些RegExp-object特性有关.
我做错了什么,问题怎么解决

解决方法

因为RegExp构造函数的第一个参数是字符串而不是模式文字,所以必须转义反斜杠,因为您需要模式中的文字反斜杠:

var r = new RegExp( '\\[(.*?)\\][ ]*\\[([0-9]+)\\]','g' );

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...