Javascript 为什么除了节点程序外,这个正则表达式在任何地方都可以工作?
我现在甚至没有寻找解决方案,只是好奇为什么我的正则表达式可以在Firefox、Chrome和regex测试仪中工作,而不能在Node 8.12、10.11和10.12中工作 这是: var str=`import{User}from'..'; 从“..”导入{UserRole}; 导出类ServerUser{ _id?:字符串; id?:字符串; userRole?:字符串; 名字?:字符串; lastName?:字符串; description?:字符串; 电子邮件?:字符串; 电话?:字符串; profileImg?:字符串; 出生日期?:编号; 注册数据?:编号; isMale?:布尔值; 密码?:字符串; 用户名?:字符串; 媒体?:任何[]; /** *调用此方法将用户映射到ServerUser * *@param{}用户 *@returns{ServerUser} */ 静态映射用户:用户:服务器用户{ const u={}作为服务器用户; [……等] `; var resultArray=str.match/\s*[\u]id\?\:\sstring\\s+[。\w\?\:\,\;\[\]\{\}\s]*\\n/m; console.logresultArray;Javascript 为什么除了节点程序外,这个正则表达式在任何地方都可以工作?,javascript,node.js,regex,Javascript,Node.js,Regex,我现在甚至没有寻找解决方案,只是好奇为什么我的正则表达式可以在Firefox、Chrome和regex测试仪中工作,而不能在Node 8.12、10.11和10.12中工作 这是: var str=`import{User}from'..'; 从“..”导入{UserRole}; 导出类ServerUser{ _id?:字符串; id?:字符串; userRole?:字符串; 名字?:字符串; lastName?:字符串; description?:字符串; 电子邮件?:字符串; 电话?:字符
document.writeJSON.stringifyresultArray,null,4;原因是正则表达式中的换行符:\n.显然您没有在Unix系统上运行node,因此您可以: 使用 或: 摆脱它 或者更好: 使用\r | \n | \r\n满足所有这些条件
@Pawel-你说它不起作用是什么意思?当然,除了document.write在Node.js中不受支持之外,它似乎起作用了。具体什么不起作用?你期望得到什么结果,你得到了什么?@t.J.Crowder在重读这个问题时,我意识到str不仅仅是第一行。我的错。@t.J.Crowder嗨!它在浏览器中工作,但在Node.js中不工作。很抱歉,我没有关于如何在Node中使用regex的信息-只是在文章的末尾添加了它。在Node中,我希望它返回一个包含2个字符串的数组,就像在浏览器中一样。相反,它会抛出一个错误,好像regex没有找到任何匹配项。ps。我已经确认serverContent!==在其上运行匹配时未定义。那么,serverContent的值是多少?很难说为什么您的正则表达式不匹配某些未知字符串。将代码、标记、错误和其他文本信息作为文本而不是文本图片发布。原因:使用\r | \n | \r\n而不是单个\n修复了此问题。谢谢!不幸的是,无法升级投票