我正在尝试使用 javascript 正则表达式,当尝试实现 /**
时,我不断收到 SyntaxError: Invalidregex:
不起作用
\/\*\*
作品
\/\* \*
有没有特殊的方法可以逃脱相邻的两颗星?
大局:
我正在使用this yeoman 助手来断言这一点:
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
)。 IE。进行查找和替换: {
→ \\{
, [
→ \\[
, (
→ \\(
, .
→ \\.
.
并且在表达式中包含换行符可能也不起作用。
关于Javascript正则表达式试图转义/**,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26025463/