kim*_*3er 11 html regex grammar textmate
我最近开始尝试使用jQuery模板,它依赖于你在SCRIPT标签中包装HTML的能力.
<script id="movieTemplate" type="text/x-jquery-tmpl">
<li>
<b>${Name}</b> (${ReleaseYear})
</li>
</script>
Run Code Online (Sandbox Code Playgroud)
问题是,TextMate自然地假设SCRIPT标签内的任何东西都是JavaScript.我确信TextMate可以根据type属性对内容进行不同的处理,但我正在努力解决捆绑中使用的一些语法问题.我非常有信心下面这行是关键,但我不知道从哪里开始.
begin = '(?:^\s+)?(<)((?i:script))\b(?![^>]*/>)';
Run Code Online (Sandbox Code Playgroud)
有没有人已经处理过类似的情况?有人能指出我正确的方向吗?
丰富
begin = '(?:^\s+)?(<)((?i:script))\b(?!([^>]*text/x-jquery-tmpl[^>]*|[^>]*/>))';
将停止使用"text/x-jquery-tmpl"处理脚本标记作为javascript
小智 2
这是一个正则表达式。您可以扩展它来检查text/javascript这样的类型:
begin = '(?:^\s+)?(<)((?i:script))\b(.*?type="text/javascript")(?![^>]*/>.*)';
我只用 测试过if,但它似乎有效。当类型为text/javascriptTextMate 时,它会针对使用 PHP 的所有其他类型将其扩展为 Javascript。(就像脚本标签之外一样。)
您可以在此处阅读有关 TextMate 如何使用正则表达式的更多信息:Regex(TextMate 手册)