Javascript 正则表达式修饰符

标签 javascript regex

此代码获取 html 数据并应替换所有 javascript 内容

$.ajax({
    url: url,
    success: function(data){
        data = data.replace(/<script.*?<\/sc/mg,'');
        alert(data);
    },
    dataType: 'html'
});

但是data 中还有javascript 代码

.....</div><!-- end header -->
<div id="snapshot">
    <a href="?cat=<div style=&panel=center" id="leftNav" class="navlink"><i class="icon-previous icon-large white"></i></a>

    <a href="?cat=<div style=&panel=left" id="rightNav" class="navlink"><i class="icon-next icon-large white"></i></a>
<script type="text/javascript">
$(document).ready(function() {
    $('body').append('<div id="loaded_page"></div>');
    url = $('#leftNav').attr('href')
    $.ajax({
        url: url,
        success: function(data){
            data = data.replace(/<script.*?<\/sc/mgi,'');
            alert(data);
        },
        dataType: 'html'
    });

    return;
</script>
    ....................

所以我需要结果是

.....</div><!-- end header -->
<div id="snapshot">
    <a href="?cat=<div style=&panel=center" id="leftNav" class="navlink"><i class="icon-previous icon-large white"></i></a>

    <a href="?cat=<div style=&panel=left" id="rightNav" class="navlink"><i class="icon-next icon-large white"></i></a>

所有的 javascript 都应该被删除。正则表达式 data.replace(/<script.*?<\/sc/mg,'')仅替换一行中的内容

最佳答案

.* 在新行上的 javascript 中不起作用。而是使用 [\s\S]*

这是正则表达式:

/<script[\s\S]*?</script>/i

关于Javascript 正则表达式修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9925667/

相关文章:

php - 正则表达式(特别是 preg_split() PHP)

javascript - 用单个 <br> 替换 javascript 中的多个 <br>?

javascript - 全局样式不适用于 Chrome 36 中 Polymer 元素中的 Shadow DOM 子元素

javascript - MVC 中的 JQuery - 使用 getJson 将表单数据作为数组发送

javascript - 正则表达式仅匹配确切的单词

php - 字符串的正则表达式看起来像 PHP 中的 javascript 对象

javascript - 正则表达式:如何找到以 Ä,Ö,Ü ... 开头的单词?

javascript - 通过 JavaScript 的请求方法保存一个值

javascript - 尝试使用 Three.js 重置整个场景时性能下降

javascript - 如何正确为函数创建日期对象