Javascript 如何将Ajax数据响应转换为字符串?
原始版本:Javascript 如何将Ajax数据响应转换为字符串?,javascript,jquery,ajax,regex,Javascript,Jquery,Ajax,Regex,原始版本: <div> <p> <span>text</span> </p> <div> $.get('/some.html', function(data) { alert(data.replace(/<p.*p>/gi, '')); }); <div> <> <span>text</span>
<div>
<p>
<span>text</span>
</p>
<div>
$.get('/some.html', function(data) {
alert(data.replace(/<p.*p>/gi, ''));
});
<div>
<>
<span>text</span>
</>
<div>
<div>
<div>
文本
RegExp:
<div>
<p>
<span>text</span>
</p>
<div>
$.get('/some.html', function(data) {
alert(data.replace(/<p.*p>/gi, ''));
});
<div>
<>
<span>text</span>
</>
<div>
<div>
<div>
$.get('/some.html',函数(数据){
警报(data.replace(//gi',);
});
在RegExp之后:
<div>
<p>
<span>text</span>
</p>
<div>
$.get('/some.html', function(data) {
alert(data.replace(/<p.*p>/gi, ''));
});
<div>
<>
<span>text</span>
</>
<div>
<div>
<div>
文本
我需要得到什么:
<div>
<p>
<span>text</span>
</p>
<div>
$.get('/some.html', function(data) {
alert(data.replace(/<p.*p>/gi, ''));
});
<div>
<>
<span>text</span>
</>
<div>
<div>
<div>
如果我没弄错,那么你需要这样的东西……但它会使你页面中的所有div都变成一个空白div
$('div').html('');
如果要删除特定的div,请为该div提供一个id,然后按如下方式执行
$(data).find('#divID').html(' ');
如果我没弄错的话,那么你需要这样的东西……但它会使你页面中的所有div都变成一个空白div
$('div').html('');
如果要删除特定的div,请为该div提供一个id,然后按如下方式执行
$(data).find('#divID').html(' ');
如果您想处理返回的html,那么不应该通过正则表达式来处理 我不完全确定我是否理解您的问题,但看起来您正在尝试从结果中删除
元素?您可以使用jQuery处理返回的html,例如
$(data).remove('p');
如果您想处理返回的html,那么不应该通过正则表达式来处理 我不完全确定我是否理解您的问题,但看起来您正在尝试从结果中删除
元素?您可以使用jQuery处理返回的html,例如
$(data).remove('p');
Javascript没有dotall模式,因此您的
与换行符不匹配
但是你可以试试这个
$.get('/some.html', function(data) {
alert(data.replace(/<p[\S\s]*?p>/gi, ''));
});
$.get('/some.html',函数(数据){
警报(data.replace(//gi',);
});
[\S\S]
表示匹配任何非空白(\S
)或任何空白(\S
)字符。换行符包含在空白字符中
*?
是一个非贪婪匹配,意味着它匹配的尽可能少
一旦您的标记被嵌套,您在使用正则表达式时就会遇到问题。您必须意识到这一点。也许@FearofahackPlanet的解决方案是更好的选择。Javascript没有dotall模式,因此您的
与换行符不匹配
但是你可以试试这个
$.get('/some.html', function(data) {
alert(data.replace(/<p[\S\s]*?p>/gi, ''));
});
$.get('/some.html',函数(数据){
警报(data.replace(//gi',);
});
[\S\S]
表示匹配任何非空白(\S
)或任何空白(\S
)字符。换行符包含在空白字符中
*?
是一个非贪婪匹配,意味着它匹配的尽可能少
一旦您的标记被嵌套,您在使用正则表达式时就会遇到问题。您必须意识到这一点。也许来自@Fearofahackplanet的解决方案是更好的选择。Javascript regexp与“.”不匹配。您指定了//g标志。通常,在javascript中使用[\s\s]
alert(data.replace(/<p[\s\S]*?p>/i, ''));
警报(data.replace(//i',);
Javascript regexp与“.”不匹配。您指定了//g标志。通常,在javascript中使用[\s\s]
alert(data.replace(/<p[\s\S]*?p>/i, ''));
警报(data.replace(//i',);
我想他想更改它,然后显示内容,但显示然后更改也会达到预期的效果。我需要将ajax数据转换为字符串,并像往常一样使用字符串parse@Balanivash-看看他的最后一点——他只是想要一个没有innerHTML的div。。正如他在报告中指出的那样question@Algorithm-ajaxcall返回字符串本身,并认为他想更改它,然后显示内容,但是显示和更改也会达到预期的效果。我需要将ajax数据转换为字符串,并像往常一样使用它来转换字符串parse@Balanivash-看看他的最后一点——他只是想要一个没有innerHTML的div。。正如他在报告中指出的那样question@Algorithm-ajaxcall返回字符串本身,您应该为最小匹配指定“?”。)您应该为最小匹配指定“?”。)我不认为这个问题的标题反映了问题的内容。我不认为这个问题的标题反映了问题的内容。因此,我想将ajax响应解析为如下字符串:因此,我想将ajax响应解析为如下字符串: