从HTML中删除字符串?

时间:2015-02-21 01:56:31

标签: javascript jquery

在我的代码中,我将get请求发送到一个站点,有时返回的字符串如HTML上方的顶部,导致jQuery错误

例如

4341-b087-58848cd597a7%26mode%3d%26code%3d500|<div>Div</div>

哪会导致

 Uncaught Error: Syntax error, unrecognized expression: 4341-b087-58848cd597a7%26mode%3d%26code%3d500|jquery.js:1473 Sizzle.errorjquery.js:2087 Sizzle.tokenizejquery.js:2488 Sizzle.selectjquery.js:879 Sizzlejquery.js:2704 jQuery.fn.extend.findjquery.js:2821 jQuery.fn.initjquery.js:73 jQuerygear.js:26 (anonymous function)gear.js:21 (anonymous function)jquery.js:3119 firejquery.js:3231 self.fireWithjquery.js:9275 donejquery.js:9685 callback

每次琴弦都有共同点;它们都以4开头,以%26mode%3d%26code%3d500|

结尾

如何检查文本%26mode%3d%26code%3d500|是否在页面中,如果是,请删除从4%26mode%3d%26code%3d500|(包括那些)的所有内容,以便它不会出错? 我的代码是这样的

$.get(url).done(function(data) {
    callback(data.replace(/img/gi, "flip");
}

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用正则表达式:

data = data.replace(/^4.*%26mode%3d%26code%3d500\|/, '');

或者你可以将整个事物包装在DIV中:

var Item = $('<div>', { html: data }).find("#ct100").attr("href");

答案 1 :(得分:0)

如果字符串位于响应的开头,则简单&amp;快:

$.get(url).done(function(data) {
    data = data.split('%26mode%3d%26code%3d500|')[1];
}

答案 2 :(得分:0)

你甚至可以使用javascript string函数来摆脱这个:

var pos = data.lastIndexOf("%26mode%3d%26code%3d500|");
var reqPos = pos + 24; //last position of above string + number of chars in above string
var result = str.slice(reqPos);
alert(result); //will give you expected output