我在IE 8中使用XDomainRequest来获取网页的内容。reponseText 包含转义字符和 unicode 字符,这些字符可防止将标记插入到div 中。这是返回数据的示例。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">u000du000a<html xmlns="http://www.w3.org/1999/xhtml">u000du000a<head>u000du000a <title>...</title>u000du000a <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>u000du000a</head>u000du000a<body>u000du000au000du000a<div style="font-size:24px;font-weight:bold">u000du000aText Headline: u000du000a</div>u000du000au000du000a<div style="float:left;width:50%;margin:0;padding:0;">u000du000a<p>Lorem ipsum dolor sit amet</p>u000du000au000du000a<p>In nec imperdiet lectus.
当我使用 decodeURI 或 decodeURIComponent 时,我收到"要解码的 URI 不是有效的编码"错误。
有人可以建议一种方法或正则表达式来清理 HTML 吗?
根据我的快速测试:
regex = /\([^u])/g;
// put it in a JSON object so that JS doesn't automatically de-escape
string = JSON.stringify({response: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">u000du000a<html xmlns="http://www.w3.org/1999/xhtml">u000du000a<head>u000du000a <title>...</title>u000du000a <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>u000du000a</head>u000du000a<body>u000du000au000du000a<div style="font-size:24px;font-weight:bold">u000du000aText Headline: u000du000a</div>u000du000au000du000a<div style="float:left;width:50%;margin:0;padding:0;">u000du000a<p>Lorem ipsum dolor sit amet</p>u000du000au000du000a<p>In nec imperdiet lectus.'});
string.replace(regex, '$1');
将替换除 Unicode 之外的所有转义斜杠。我不认为 JS 中正斜杠有许多其他非转义用途。