如何将Ajax数据响应转换为字符串?

时间:2011-06-20 11:23:58

标签: javascript jquery ajax regex

原始版本:

<div>
    <p>
        <span>text</span>
    </p>
<div>

正则表达式:

$.get('/some.html', function(data) {
    alert(data.replace(/<p.*p>/gi, ''));
});

RegExp之后:

<div>
    <>
        <span>text</span>
    </>
<div>

我需要获得什么:

<div>

<div>

4 个答案:

答案 0 :(得分:2)

如果你想使用返回的html,那么你不应该通过正则表达式来做到这一点。

我不完全确定我理解你的问题,但看起来你试图从结果中删除<p>元素?你可以使用jQuery返回的html,比如

$(data).remove('p');

答案 1 :(得分:2)

Javascript没有dotall模式,因此您的.与新行字符不匹配。

但你可以试试这个

$.get('/some.html', function(data) {
    alert(data.replace(/<p[\S\s]*?p>/gi, ''));
});

[\S\s]表示匹配任何非空格(\S)或任何空格(\s)字符。换行符包含在空白字符中。

*?是非贪婪的匹配,意味着匹配尽可能少。

只要您的代码嵌套,使用正则表达式时就会遇到问题。您必须注意这一点。可能@fearofawhackplanet的解决方案是更好的选择。

答案 2 :(得分:0)

如果我找到了你,那么你需要这样的东西...但它会使你页面中的所有div成为空白div

 $('div').html('');

如果你想删除特定div然后给该div一个id,然后像这样做..

$(data).find('#divID').html(' ');

答案 3 :(得分:0)

Javascript正则表达式与\ n匹配“。”。你指定了// g标志。通常,在javascript中使用[\ s \ S]。

alert(data.replace(/<p[\s\S]*?p>/i, ''));