Javascript正则表达式试图逃逸/**

Javascript正则表达式试图逃逸/**,javascript,regex,Javascript,Regex,我尝试使用javascript正则表达式,当尝试实现/**时,我不断得到语法错误:无效正则表达式: 不起作用 \/\*\* 工作 有没有一种特殊的方法可以逃离两颗相邻的恒星 大图: 我使用yeoman helper来断言: var expected = "\n\ \/\*\*\n\ \* This is my description\n\ \*\n\ \* @param req\n\ \* @param reply\n\ \*\/\n\ exports.findEm = function (r

我尝试使用javascript正则表达式,当尝试实现
/**
时,我不断得到
语法错误:无效正则表达式:

不起作用

\/\*\*
工作

有没有一种特殊的方法可以逃离两颗相邻的恒星

大图:

我使用yeoman helper来断言:

var expected = "\n\
\/\*\*\n\
\* This is my description\n\
\*\n\
\* @param req\n\
\* @param reply\n\
\*\/\n\
exports.findEm = function (req, reply) {\n\
\n\
itemDao.findEm(req.params.id, function (err, data) {\n\
if (err) {\n\
return reply(Boom.wrap(err));\n\
}\n\
reply(data);\n\
});\n\
};\n\
";

....

helpers.assertFileContent(path.resolve(process.cwd(), 'myfile.js'), RegExp(expected));

您可以将正则表达式作为字符串传递。您必须使用另一个反斜杠来转义反斜杠:
“\\/\\\*\\*”

但是您的正则表达式也包含许多需要转义的有意义字符。例如,括号用于分组和捕获;大括号用来复制一个模式(
a{3}
=三个
a
s)。即查找并替换:
{
→ <代码>\{,
[
→ <代码>\\[,
→ <代码>\\(,
→ <代码>\\.


在表达式中使用换行符也可能不起作用。

您将正则表达式作为字符串传递。您必须使用另一个反斜杠来转义反斜杠:
“\\/\*\*”

但是您的正则表达式也包含许多需要转义的有意义字符。例如,括号用于分组和捕获;大括号用于复制模式(
a{3}
=three
a
s)。例如,执行查找和替换:
{
→ <代码>\{,
[
→ <代码>\\[,
→ <代码>\\(,
→ <代码>\\.


在表达式中使用换行符也可能不起作用。

您将正则表达式作为字符串传递。您必须使用另一个反斜杠来转义反斜杠:
“\\/\*\*”

但是您的正则表达式也包含许多需要转义的有意义字符。例如,括号用于分组和捕获;大括号用于复制模式(
a{3}
=three
a
s)。例如,执行查找和替换:
{
→ <代码>\{,
[
→ <代码>\\[,
→ <代码>\\(,
→ <代码>\\.


在表达式中使用换行符也可能不起作用。

您将正则表达式作为字符串传递。您必须使用另一个反斜杠来转义反斜杠:
“\\/\*\*”

但是您的正则表达式也包含许多需要转义的有意义字符。例如,括号用于分组和捕获;大括号用于复制模式(
a{3}
=three
a
s)。例如,执行查找和替换:
{
→ <代码>\{,
[
→ <代码>\\[,
→ <代码>\\(,
→ <代码>\\.



在表达式中使用换行符也可能不起作用。

在哪里不起作用?它很好用,你可以使用
\/\*{2}
/\/\*\*/
很好。
“/**.”匹配(/\/\*/)
在这里很好用。有人提到过吗?;-)@鲶鱼,只是想确定一下:你确实包装了你在
/…/
中发布的两种模式,对吗?你是以字符串的形式传递正则表达式吗?然后你必须用另一个反斜杠来转义反斜杠:
“\\/\\*\*”
。它在哪里不起作用?它很好用,你可以使用
\/\*{2}
/\/\*/\**/
很好。
“/**.match.”(/\/\*\*/)
在这里工作得很好。有人已经提到了吗?;-)@Catfish,只是想确定一下:您确实包装了您在
/…/
中发布的两种模式,对吗?您是否将正则表达式作为字符串传递?然后您必须用另一个反斜杠转义:
“\\/\*\*”
。它在哪里不起作用?它很好用,你可以用
\/\*{2}
/\/\*\*/
很好用。
“/**.”匹配(/\/\*.*/)
在这里很好用。有人提到过吗?;-)@鲶鱼,只是想确定一下:你确实包装了你在
/…/
中发布的两种模式,对吗?你是以字符串的形式传递正则表达式吗?然后你必须用另一个反斜杠来转义反斜杠:
“\\/\\*\*”
。它在哪里不起作用?它很好用,你可以使用
\/\*{2}
/\/\*/\**/
很好。
“/**.match.”(/\/\*\*/)
在这里工作得很好。有人已经提到了吗?;-)@Catfish,只是想确定一下:您确实包装了您在
/…/
中发布的两种模式,对吗?您是否将正则表达式作为字符串传递?然后您必须用另一个反斜杠转义:
“\\/\*\*”
。因此,如果我这样做,我不会得到语法错误,但我会得到一个在输出中包含斜杠的断言错误。
assertionError:/temp/modules/items/items-ctrl.js与'/\/\*\\\\\\\**不匹配**@param req*@param reply*/exports.findEm=function(req,reply){itemDao.findEm(req.params.id,function(err,data){if(err){返回应答(Boom.wrap(err));}应答(data);}}“;/”。
Ahhh这是parens上的双重转义。谢谢!如果我这样做,我不会得到语法错误,但我会得到一个在输出中包含斜杠的断言错误。
assertionError:/temp/modules/items/items/item-ctrl.js与'/\/\*\\\\\**这是我的描述**@param req*@param reply*/exports.findEm=函数不匹配(req,reply){itemDao.findEm(req.params.id,函数(err,data){if(err){return reply(Boom.wrap(err));}reply(data);}“;/”。
Ahhh这是parens上的双重转义。谢谢!如果我这样做,我不会得到语法错误,但我会得到一个在输出中包含斜杠的断言错误。
assertionError:/temp/modules/items/items/item-ctrl.js与'/\/\*\\\\\**这是我的描述**@param req*@param reply*/exports.findEm=函数不匹配(req,reply){itemDao.findEm(req.params.id,function(err,data){if(err){return reply(Boom.wrap(err));}reply(data);};};//。
Ahhh是parens上的双重转义让我明白了。谢谢!如果我这么做,我不会得到语法错误,但我会得到一个包含slashe的断言错误
var expected = "\n\
\/\*\*\n\
\* This is my description\n\
\*\n\
\* @param req\n\
\* @param reply\n\
\*\/\n\
exports.findEm = function (req, reply) {\n\
\n\
itemDao.findEm(req.params.id, function (err, data) {\n\
if (err) {\n\
return reply(Boom.wrap(err));\n\
}\n\
reply(data);\n\
});\n\
};\n\
";

....

helpers.assertFileContent(path.resolve(process.cwd(), 'myfile.js'), RegExp(expected));