gpt4 book ai didi

javascript - Markdown -> detab 正则表达式中的摊牌错误?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:50:46 25 4
gpt4 key购买 nike

我正在查看 Gruber 的原始 Markdown 实现 here 和 Showdown 实现 here

我正在比较每个中的 _Detab 函数。我给每个以下字符串

"Where\tis pancakes house?"

测试和输出的 Perl 版本是 here 。这是 26 个字符长。

测试和输出的 JavaScript 版本是 here 。这是 27 个字符长。

      123456789012345678901234567
Perl: Where is pancakes house?
JS: Where is pancakes house?

我做错了吗?这是一个错误,还是有其他目的?

最佳答案

Showdown 的 detabber 中有几个错误。这就是 Stack Overflow 版本的原因,I have rewritten it :

function _Detab(text) {
if (!/\t/.test(text))
return text;

var spaces = [" ", " ", " ", " "],
skew = 0,
v;

return text.replace(/[\n\t]/g, function (match, offset) {
if (match === "\n") {
skew = offset + 1;
return match;
}
v = (offset - skew) % 4;
skew = offset + 1;
return spaces[v];
});
}

它 detabs 正确,如果我没有记错我的测量结果,这与旧版 IE 中的原始版本一样快(可能稍微慢一点),而在较新的浏览器中快得多。 p>

参见 http://code.google.com/p/pagedown/wiki/PageDown对于我们完整版的 Showdown。

关于javascript - Markdown -> detab 正则表达式中的摊牌错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7343796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com