此代码获取 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/