Google Code Prettify - 如何修复SQL转义字符

时间:2014-04-21 14:22:57

标签: javascript regex prettify google-code-prettify

我正在尝试解决以下问题,因为它在我的网站上非常烦人。 https://code.google.com/p/google-code-prettify/issues/detail?id=341&thanks=341&ts=1398085413

并引用以下文件的美化代码: https://code.google.com/p/google-code-prettify/source/browse/trunk/src/lang-sql.js?r=179

问题在于

  1. 当在SQL中创建以“\”结尾的字符串时,荧光笔认为它已被转义,而这不是T-SQL语法。
  2. 要重现,请使用此代码作为源代码:(安装了Google Code Prettify)

    <pre class="prettyprint lang-sql">
     SELECT @BUPath = 'c:\backups\' + @DBName + '-B4 CHANGE.bak'
     SELECT @BUName = @DBName + '-B4 CHANGE'
    </pre>
    
  3. 我希望代码能够理解“c:\ backups \”部分中引号之前的斜杠不是转义字符...

    我希望这条线需要改变,但我不确定如何:

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

    显示问题:http://jsfiddle.net/JH5uj/5/

1 个答案:

答案 0 :(得分:2)

我认为https://github.com/google/code-prettify/blob/master/src/lang-sql.js上的PR_STRING定义必须是从反斜杠是转义字符的其他语言中复制的。

/^(?:"[^"]*"|'[^']*')/

据我所知,但作为一个数据库人,我可能会遗漏一些东西。

(很抱歉这次聚会迟到了,但我刚刚遇到同样的问题并找到了这个帖子。)