JavaScript正则表达式赢得';与新线不匹配
我目前正在使用NodeJS制作一个简单的应用程序,将输入转换为定义的格式。为此,我使用了下面的JavaScript,其中JavaScript正则表达式赢得';与新线不匹配,javascript,node.js,regex,Javascript,Node.js,Regex,我目前正在使用NodeJS制作一个简单的应用程序,将输入转换为定义的格式。为此,我使用了下面的JavaScript,其中content是输入 content = content.replace(/(.+)\n=+$/gm, '<div>$1</div>'); content = content.replace(/(.+)\n-+$/gm, '<p>$1</p>'); 转化为 <div>Message</div> <
content
是输入
content = content.replace(/(.+)\n=+$/gm, '<div>$1</div>');
content = content.replace(/(.+)\n-+$/gm, '<p>$1</p>');
转化为
<div>Message</div>
<p>Another Message</p>
消息
另一条消息
但是,我得到了与输入相同的输出(因此没有任何变化)
我用WebStorm的RegEx测试仪和两者都试过了,两者都找到了匹配项。当我记录content.match(/(.+)\n=+$/gm)的结果时,
我得到null
当我从正则表达式和输入中删除\n
时,它似乎是匹配的,这让我认为\n
引起了某种问题。但是,我不知道这可能会导致任何问题。您使用的是windows吗
试着:
content = content.replace(/(.+)\r\n=+$/gm, '<div>$1</div>');
content = content.replace(/(.+)\r\n-+$/gm, '<p>$1</p>');
对我来说效果很好:^同样,您的javaScript代码没有问题。您可以使用“/(.+)\r?\n=+$/gm”来测试它,这使得“\r”是可选的。
content = content.replace(/(.+)\r\n=+$/gm, '<div>$1</div>');
content = content.replace(/(.+)\r\n-+$/gm, '<p>$1</p>');
content = content.replace(/(.+)\r?\n=+$/gm, '<div>$1</div>');
content = content.replace(/(.+)\r?\n-+$/gm, '<p>$1</p>');