Javascript 无法获取有效的正则表达式以在nodejs中工作

Javascript 无法获取有效的正则表达式以在nodejs中工作,javascript,regex,node.js,Javascript,Regex,Node.js,我试图使用下面的nodejs函数来检查字符串中是否存在特定类型的url。我单独检查了这个正则表达式,它看起来不错,但在节点中给我一个错误 var checkforURL = function(data) { var re = /((?:https?://)?www\.example\.com\/tp\/\S+\d+)/g/; return re.test(data); } 对于以下情况,这应该返回true www.exmaple.com/tp/abc/123 等等 当我试

我试图使用下面的nodejs函数来检查字符串中是否存在特定类型的url。我单独检查了这个正则表达式,它看起来不错,但在节点中给我一个错误

var checkforURL = function(data) {
   var re = /((?:https?://)?www\.example\.com\/tp\/\S+\d+)/g/;
   return re.test(data);
} 
对于以下情况,这应该返回true

  • www.exmaple.com/tp/abc/123
等等

当我试图运行代码时,我得到了以下编译错误 var re=/((?:https?:/)?www.example.com/tp/\S+\d+)/g/; ^

SyntaxError:意外标记) 在模块处编译(Module.js:439:25) 在Object.Module.\u extensions..js(Module.js:474:10) 在Module.load(Module.js:356:32) 在Function.Module.\u加载(Module.js:312:12) 位于Function.Module.runMain(Module.js:497:10) 启动时(node.js:119:16) 在node.js:906:3


我需要这个括号,它们将https?://括起来,以确保它可以存在0次或1次,不确定nodejs为什么不断抛出错误,有什么想法吗?

您需要避开
https?://
中的前斜杠,还需要删除
g
之后的最后一个
/
。将字符串
example
更改为
exmaple

var re = /((?:https?:\/\/)?www\.exmaple\.com\/tp\/\S+\d+)/g;
上述正则表达式应与以下URL匹配

http://www.exmaple.com/tp/123
www.exmaple.com/tp/abc/123
https://www.exmaple.com/tp/123
要匹配
示例
链接

var re = /((?:https?:\/\/)?www\.example\.com\/tp\/\S+\d+)/g;
如果希望同时匹配example和exmaple链接,请在字符类中指定
m
a

((?:https?:\/\/)?www\.ex[ma][ma]ple\.com\/tp\/\S+\d+)

您需要避开https?://中的前斜杠,还需要删除g之后的最后一个
/
。是
示例
还是
exmaple
?exmaple杀了我