Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.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 用替换换行符的函数\n删除以\n或开头的标记行-_Javascript_Markdown - Fatal编程技术网

Javascript 用替换换行符的函数\n删除以\n或开头的标记行-

Javascript 用替换换行符的函数\n删除以\n或开头的标记行-,javascript,markdown,Javascript,Markdown,我有一个与node一起运行的javascript函数,用于降低价格并缩小它。但是,当我使用有序或无序列表(带-或1…)时,列表会被完全忽略。这样做的功能是- function convert (content) { return content .replace(/\t/g, ' ') .replace(/\\/g, '\\\\') .replace(/\n/g, '\\n') .replace(/"/g, '\\"') } 是.rep

我有一个与node一起运行的javascript函数,用于降低价格并缩小它。但是,当我使用有序或无序列表(带-或1…)时,列表会被完全忽略。这样做的功能是-

function convert (content) {
  return content
    .replace(/\t/g, '  ')
    .replace(/\\/g, '\\\\')
    .replace(/\n/g, '\\n')
    .replace(/"/g, '\\"')
}
.replace(/\n/g,'\\n')
行导致了问题,但我不知道原因

我正在分析的文本是

A predictable pseudorandom number generator (PRNG) can lead to security issues where the number generated is being used as certain values security-critical, such as:  
- In a CSRF token 
- As a session token 
- Any secret value 
...
缩小到

A predictable pseudorandom number generator (PRNG) can lead to security issues where the number generated is being used as certain values security-critical, such as\n ...
尝试以下操作:
。替换(/\n/g,\\\\n')


就像在您的现有行
.replace(/\\/g,\\\\')
中一样,您需要添加额外的转义字符,以使输出显示转义的新行字符。

这样,您的代码实际上可以正常工作

为文件读取器尝试此方法,是否解决了此问题

fs.readFile(filePath, 
        {encoding:'utf8', flag:'r'},
        function(err, data) {
    if(err)
        console.log(err);
    else
        convert(data);
});
函数转换(内容){
返回内容
.替换(/\t/g'')
.替换(/\\/g,“\\\\”)
.替换(/\n/g,“\\n”)
.替换(/“/g,“\\”)
}
console.log(转换)(
`可预测的伪随机数生成器(PRNG)可能会导致安全问题,其中生成的数字被用作某些安全关键值,例如:
-在CSRF令牌中
-作为会话令牌
-任何秘密价值
...`
));
替换
.Replace(/\n/g,'\\n')
行。Replace(/\r\n/g,'\\n')
如下所示:

函数转换(内容){
返回内容
.替换(/\t/g'')
.替换(/\\/g,“\\\\”)
.替换(/\r\n/g,'\\n')
.替换(/“/g,“\\”)
}
回车
\r
将光标移动到行首,而不前进到下一行。 因此,当与换行符组合时,它们会将光标向下移动到下一行,然后移动到行的开头。
这可能会奏效。

你应该收集你正在分析的文本样本这是个好主意,我将在这里添加它,我正在分析的文本是
可预测的伪随机数生成器(PRNG)可能会导致安全问题,其中生成的数字被用作某些安全关键值,例如:-在CSRF令牌中-作为会话令牌-任何秘密值…
并且它被缩小为
可预测的伪随机数生成器(PRNG)可能导致安全问题,其中生成的数字被用作某些安全关键值,例如\n…
通常最好将所有信息放在问题中,而不是注释=)我已经尝试过了,但唯一的区别是
\n
被替换为
\\n
,列表由于某种原因仍然消失
const fs=require('fs')function convert(content){return content.replace(/\t/g,,).replace(/\\/g,'\\\\').replace(/\n/g,'\\n').replace(/“/g,'\\\\')}函数运行(filePath){let content=fs.readFileSync(filePath,'utf8')console.log(convert(content))}if(require.main==module){run(process.argv[2])}module exports={'convert':convert'run':run}
这是代码的其余部分,它只需要一个文件路径并从中读取一个文件。请将其添加到您的原始问题=)@dapawa您还可以在您的问题中输入您从文件读取器获得的打印行的内容形式的值是多少吗?这不太有效,但我尝试将其替换为\r\n,似乎有效-no idea why thoughThe可获取有关
\r\n
为什么会起作用的更多信息。