我有一个 NodeJS 中 CORS 配置的代码。如下:
var allowedOrigin = new RegExp('^https?://(' + config.get('http:allowedOrigins').join('|') + ')(:\\d+)?(/.*)?$');
它给出了这个错误
SyntaxError: Invalid regular expression: /^https?://(*.dev.examplewebsite.com|0.0.0.0|192.168.1.1|.*)(:\d+)?(/.*)?$/: Nothing to repeat
at new RegExp (native)
at Object.<anonymous> (/Users/yagiz/Desktop/example/project-api/src/lib/handlers/cors.js:4:21)
最佳答案
这里的问题是您需要对连接的字符串中的特殊字符(例如点)进行转义。
查找here用于转义正则表达式字符串的函数:
RegExp.escape= function(s) {
return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
};
var allowedOrigin = new RegExp(
'^https?://(' +
config.get('http:allowedOrigins').map(RegExp.escape).join('|') +
')(:\\d+)?(/.*)?$'
);
关于javascript - Nodejs 中的无效正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30332145/