【发布时间】:2013-03-07 15:21:59
【问题描述】:
在 Visual Studio 2010/2012 中,如何找到所有可能包含与 Razor 混合的 javascript 的脚本标签?
这应该是匹配的:
<script>
var hola = '@serverVariable';
alert(hola);
</script>
<script>
var somenumber = @Int32.MaxValue;
alert(somenumber );
</script>
<script>
@if(someFlag)
{
@:alert('hello');
}else{
@:alert('bye');
}
</script>
这不应该是匹配的:
<script>
@* A valid comment *@
alert(hola);
</script>
<script>
alert('hola @@');
</script>
<script>
alert('hola');
</script>
我正在尝试将此作为正则表达式,但 VisualStudio 需要数小时才能找到所有引用,它是递归的,我不知道如何中断递归。
<script{1}([\s\r\n]|.)*?[^*@]@[^*@]([\s\r\n]|.)*?</script{1}
【问题讨论】:
-
如果有人想知道为什么,假设我“迟到”参加聚会,我必须清理垃圾。 Razor 与 JavaScript 混合是有史以来最糟糕的主意!
-
我的解决方案对您有用吗?
-
不,这没有匹配。不过谢谢
-
我在 VS 2010 Pro 中使用快速查找(选择使用正则表达式)尝试了我的正则表达式,它在您的示例数据上运行良好。
标签: regex asp.net-mvc visual-studio-2010 razor visual-studio-2012