Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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_Erlang_Markdown - Fatal编程技术网

标记和转义Javascript换行符

标记和转义Javascript换行符,javascript,erlang,markdown,Javascript,Erlang,Markdown,我正在用Erlang编写一个标记编译器,供服务器端使用。因为它需要与客户端协同工作,所以我决定采用客户端库(shodown.js)作为规范,然后测试我的代码与它的兼容性 在最初的两次迭代中,我建立了260多个单元测试,检查我的程序产生的输出是否与我认为有效的降价兼容 但是现在我正试图编写一个javascript程序来生成我的单元测试 我有一个输入,比如: "3 > 4\na" 我想对其进行“摊牌”,以获得: "<p>3 &gt; 4\na</p>" 我尝

我正在用Erlang编写一个标记编译器,供服务器端使用。因为它需要与客户端协同工作,所以我决定采用客户端库(shodown.js)作为规范,然后测试我的代码与它的兼容性

在最初的两次迭代中,我建立了260多个单元测试,检查我的程序产生的输出是否与我认为有效的降价兼容

但是现在我正试图编写一个javascript程序来生成我的单元测试

我有一个输入,比如:

"3 > 4\na"
我想对其进行“摊牌”,以获得:

"<p>3 &gt; 4\na</p>"
我尝试使用以下代码将换行符转换为转义版本:

text.replace("\\", "\\\\");
text.replace("\n", "\\n");

但是没有乐趣…

汤姆·麦克纳尔蒂帮我指出,我的正则表达式是超级裤子,特别是我没有使用全球国旗:(

工作守则是:

var converter;
var text = "";
var item;
var input;
var output;
var head;
var tail;
converter = new Attacklab.showdown.converter();
item = document.getElementById("tests");
for (var test in tests) {
  input = tests[test].replace(/[\n\r]+/gi,"\\n" );
  input = input.replace(/[\"]+/gi, "\\\"");
  output = converter.makeHtml(tests[test]).replace(/[\n\r]+/gi, "\\n");
  output = output.replace(/[\"]+/gi, "\\\"");
  text += "     ?_assert(conv(\"" + input + "\") == \"" + output + "\"),\n";
};
head = "unit_test_() -> \n    [\n";
tail = "\n    ].";
text = text.slice(0, text.length - 2);
item.value = head + text + tail;

能否使用字符实体作为反斜杠:\;能否根据需要修改此脚本?Zed-我们使用决战作为生成单元测试的脚本-问题只是为了避免决战的输出。。
text.replace("\\", "\\\\");
text.replace("\n", "\\n");
var converter;
var text = "";
var item;
var input;
var output;
var head;
var tail;
converter = new Attacklab.showdown.converter();
item = document.getElementById("tests");
for (var test in tests) {
  input = tests[test].replace(/[\n\r]+/gi,"\\n" );
  input = input.replace(/[\"]+/gi, "\\\"");
  output = converter.makeHtml(tests[test]).replace(/[\n\r]+/gi, "\\n");
  output = output.replace(/[\"]+/gi, "\\\"");
  text += "     ?_assert(conv(\"" + input + "\") == \"" + output + "\"),\n";
};
head = "unit_test_() -> \n    [\n";
tail = "\n    ].";
text = text.slice(0, text.length - 2);
item.value = head + text + tail;