我正在尝试解决以下问题,因为它在我的网站上非常烦人。 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
问题是
- 当在 SQL 中创建一个以“\”结尾的字符串时,荧光笔认为它被转义了,而这不是 T-SQL 语法。
要重现,请使用此代码作为源代码:(安装了 Google Code Prettify)
<pre class="prettyprint lang-sql"> SELECT @BUPath = 'c:\backups\' + @DBName + '-B4 CHANGE.bak' SELECT @BUName = @DBName + '-B4 CHANGE' </pre>
我希望代码能够理解“c:\backups\”部分中引号前的斜杠不是转义字符...
我预计这一行需要更改,但我不确定如何更改:
[PR['PR_STRING'], /^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/, null,
'"\'']
显示问题的 fiddle :http://jsfiddle.net/JH5uj/5/
最佳答案
我认为 https://github.com/google/code-prettify/blob/master/src/lang-sql.js 处的 PR_STRING 定义一定是从其他语言复制而来的,其中反斜杠是转义字符。
/^(?:"[^"]*"|'[^']*')/
据我所知是这样做的,但作为一个单纯的数据库专家,我可能会遗漏一些东西。
(很抱歉来晚了,但我刚遇到同样的问题并找到了这个帖子。)
关于javascript - Google Code Prettify - 如何修复 SQL 转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23199347/