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响应解析为如下字符串: