gpt4 book ai didi

javascript - Javascript 中的语法高亮

转载 作者:行者123 更新时间:2023-11-30 09:03:52 25 4
gpt4 key购买 nike

我目前正在研究 Javascript 中的一些语法高亮显示。

为了匹配字符串,我会使用这样的东西:
code = code.replace(/("([^"\\]*(\\.[^"\\]*)*)")/gm, "<span class=\"string\">$1</span>"); // string

这将匹配一个整数:
code = code.replace(/(\d+)/gm, "<span class=\"number\">$1</span>");

现在我的问题是 字符串中的整数也会匹配。这不是突出显示的问题,而是性能的问题,因为我可以使用
code > span.number而不是 code span.number .
有什么防止这种行为的建议吗?


我也通读了TextMate's Language Grammars这对我来说真的很强大。但是,我不知道如何在 Javascript 中实现它。
如果能提供一些帮助,我们将不胜感激。


我知道有很多很好的语法可以突出显示周围的事物,但是它们都没有为 Objective-C 提供真正好的支持。

最佳答案

如果你想为 Google Code Prettify 写一个 objective-C 模式我很乐意合并它。

您可以在 http://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-ml.js 查看 OCAML/SML 样式语言的示例模式

像这样的线条

[PR['PR_STRING'],
/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])(?:\'|$))/, null, '"\'']

假设这是一个字符串的突出显示规则,并且一个字符串与上面的正则表达式匹配(双引号内的非引号或转义序列的运行或单引号内的非单引号或转义序列的运行) .

这条规则

[PR['PR_LITERAL'],
/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],

匹配数字文字。数字文字是一个可选的符号,后跟一个十六进制文字、一个点后跟一个分数或一个整数部分后跟一个分数,最后两个可以在末尾有一个可选的指数。

代码美化引擎负责确保字符串被视为字符串,并且字符串中看起来像数字的东西不会被误认为是数字。

关于javascript - Javascript 中的语法高亮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6833515/

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