Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么除了节点程序外,这个正则表达式在任何地方都可以工作?_Javascript_Node.js_Regex - Fatal编程技术网

Javascript 为什么除了节点程序外,这个正则表达式在任何地方都可以工作?

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?:字符串; 电子邮件?:字符串; 电话?:字符

我现在甚至没有寻找解决方案,只是好奇为什么我的正则表达式可以在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;
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修复了此问题。谢谢!不幸的是,无法升级投票