JavaScript RegEx语法突出显示

时间:2012-01-27 21:55:22

标签: javascript regex

我正在编写一个jQuery插件,以突出显示我的网页上的C ++代码。我对RegEx并不是很好,所以我无法弄清楚如何突出显示关键字(如'if','case','void'等)而不突出显示部分单词(如'int'中的'涂料')。我稍微改了一下,但有些事情仍然没有突出显示。这就是我的RegEx的样子:

str = str.replace(new RegExp("([' ' || \t ||,|| \"\"])(" + ParserKeywordsArr[i] + ")", 'g'), "$1<span style='color:" + ParserColorsArr[i] + ";'>" + ParserKeywordsArr[i] + "</span>");

这会遍历我想要突出显示的每个关键字,它存储在一个数组中,另外一个颜色数组(例如ParserKeywordsArr [0]为空,ParserColorsArr [0]为蓝色,因此它会突出显示为蓝色) 。但是,当我输入这样的东西时:

void CCodeEditorCtrl::OnPaint(WPARAM wParam, LPARAM lParam)
{
    return;
}

返回突出显示,但无效。我不知道如何告诉RegEx“如果它是该行的第一个单词,并且它与关键字匹配,请突出显示它”

2 个答案:

答案 0 :(得分:2)

我建议查看Alex Gorbatchev's SyntaxHighlighter的来源,其中突出显示C ++和其他语言。我想你也会发现RegexPal对测试它们很有帮助。

答案 1 :(得分:1)

\b是一个分词。

/in/.test('loading'); // => true
/\bin\b/.test('loading'); // => false
/\bin\b/.test('load.in.g'); // => true