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