小提琴:http://jsfiddle.net/gcbx7L3o/
我正在以JSON格式获取博客RSS Feed。我使用replace()
JS函数删除了内容中的所有HTML标记,因为我只希望它以纯文本格式显示(没有链接,图像,标题标签等)。
当我试图维护<br/>
标签时,我被困住了。 content
块根本没有中断标记。
我应该在这里使用正确的正则表达式是什么?
===
原始RSS:http://www.ohjob.info/feeds/posts/default?alt=rss
===
我的代码:
<html>
<head></head>
<body>
<button onclick="go()">Go</button>
<div id="title"></div>
<br>
<div id="post"></div>
<script>
function go() {
var jsonobject = {
"responseData": {
"feed": {
"feedUrl": "http://www.ohjob.info/feeds/posts/default?alt\u003drss",
"title": "Jawatan Kosong Kerajaan Dan Swasta 2014 | 2015",
"link": "http://www.ohjob.info/",
"author": "",
"description": "OhJobs, Jobs in Malaysia 2014, Jawatan Kosong 2014, Kerja Kosong 2014, Jawatan Kosong Kerajaan 2014, Jawatan Kosong Swasta 2014, Job Vacancy, Kerja Kosong Kerajaan, 2014, Iklan Jawatan Kosong 2014, Temuduga Terbuka 2014, Jawatan Kosong Kerajaan Terkini, Download Borang Jawatan Kosong, Kementerian Kesihatan, Majlis Bandaraya, Badan Berkanun, Majlis Perbandaran, Majlis Daerah, Universiti, Kolej, Jobsmalaysia, Kerajaan, Swasta, GLC, Job Vacancies",
"type": "rss20",
"entries": [{
"title": "Jawatan Kosong Perbadanan Kemajuan Pertanian Selangor (PKPS) (27 Oktober 2014)",
"link": "http://www.ohjob.info/2014/10/jawatan-kosong-perbadanan-kemajuan_9.html",
"author": "noreply@blogger.com (HambaAllah)",
"publishedDate": "Thu, 09 Oct 2014 19:49:00 -0700",
"contentSnippet": "Kerja Kosong Perbadanan Kemajuan Pertanian Selangor (PKPS)Permohonan adalah dipelawa kepada warganegara Malaysia bagi mengisi ...",
"content": "\u003cdiv style\u003d\"clear:both;text-align:center\"\u003e\u003ca href\u003d\"http://4.bp.blogspot.com/-HSZLsHVqvQA/VDdITkJfeyI/AAAAAAAAQco/3dYT8K2UipE/s1600/Kerja%2BKosong%2BPerbadanan%2BKemajuan%2BPertanian%2BSelangor%2B(PKPS).jpg\" style\u003d\"clear:left;float:left;margin-bottom:1em;margin-right:1em\"\u003e\u003cimg alt\u003d\"Jawatan Kerja Kosong Perbadanan Kemajuan Pertanian Selangor (PKPS) logo www.ohjob.info oktober 2014\" border\u003d\"0\" src\u003d\"http://4.bp.blogspot.com/-HSZLsHVqvQA/VDdITkJfeyI/AAAAAAAAQco/3dYT8K2UipE/s1600/Kerja%2BKosong%2BPerbadanan%2BKemajuan%2BPertanian%2BSelangor%2B(PKPS).jpg\" height\u003d\"50\" width\u003d\"200\"\u003e\u003c/a\u003e\u003c/div\u003e\u003cdiv style\u003d\"text-align:center\"\u003e\u003cb\u003e\u003ca href\u003d\"http://www.ohjob.info/2012/09/iklan-disini.html\"\u003e\u003cu\u003eKerja Kosong\u003c/u\u003e\u003c/a\u003e Perbadanan Kemajuan Pertanian Selangor (PKPS)\u003c/b\u003e\u003c/div\u003ePermohonan adalah dipelawa kepada warganegara Malaysia bagi mengisi \u003ca href\u003d\"http://newjawatankosongkerajaan.blogspot.com/\"\u003e\u003cu\u003e\u003cb\u003ekekosongan jawatan\u003c/b\u003e\u003c/u\u003e\u003c/a\u003e di Perbadanan Kemajuan Pertanian Selangor (PKPS) seperti berikut:-\u003cbr\u003e\u003cbr\u003e1\u003ca href\u003d\"http://newjawatankosongkerajaan.blogspot.com/\"\u003e.\u003c/a\u003e Pegawai Keselamatan (Security Officer)\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"font-size:large\"\u003e\u003ca href\u003d\"http://www.pkps.gov.my/?p\u003d5820\" rel\u003d\"nofollow\"\u003e\u003cu\u003e\u003cb\u003eMUAT TURUN SYARAT KELAYAKAN\u003c/b\u003e\u003c/u\u003e\u003c/a\u003e\u003cbr\u003eDan cara memohon\u003c/span\u003e\u003cbr\u003e\u003cbr\u003eHubungi Kami:-\u003cbr\u003e\u003cbr\u003ePERBADANAN KEMAJUAN PERTANIAN SELANGOR\u003cbr\u003eWISMA PKPS\u003cbr\u003ePrecint 3.2, Tingkat 10 – 11,\u003cbr\u003ePersiaran Perbandaran, Seksyen 14,\u003cbr\u003e40000 Shah Alam, Selangor Darul Ehsan.\u003cbr\u003eTel : 03-55192621 / 2 / 3\u003cbr\u003eFax ; 03-55191481\u003cbr\u003e\u003cbr\u003eemail: support@pkps.gov.my\u003cbr\u003e\u003cbr\u003e\u003cspan style\u003d\"color:red\"\u003e\u003cb\u003e\u003cspan style\u003d\"font-size:x-large\"\u003eTarikh Tutup Permohonan:\u003ca href\u003d\"http://www.ohjob.info/\"\u003e-\u003c/a\u003e 27 Oktober 2014 \u003c/span\u003e\u003c/b\u003e\u003c/span\u003e",
"categories": [
"2014",
"Jawatan Kosong",
"Jawatan Kosong 2014",
"Jawatan Kosong Kerajaan",
"Jawatan Kosong Kerajaan 2014",
"Kerajaan",
"Kerja Kosong",
"Kerja Kosong 2014",
"kerja kosong kerajaan",
"Kerja Kosong Kerajaan 2014",
"Oktober",
"Selangor"]
}]
}
},
"responseDetails": null,
"responseStatus": 200
};
// data
var length = jsonobject.responseData.feed.entries.length;
alert('Data length: ' + length);
var title = document.getElementById('title');
var titlestr = jsonobject.responseData.feed.entries[0].title;
title.innerHTML = titlestr;
var post = document.getElementById('post');
var poststr = jsonobject.responseData.feed.entries[0].content.replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi, '');
post.innerHTML = poststr;
}
</script>
</body>
</html>
答案 0 :(得分:1)
你可以使用负向前瞻。试试/<(?!br\s*\/?)[^>]+>/g
,例如this JSFiddle。
答案 1 :(得分:1)
不要使用正则表达式。
相反,只需继续插入HTML,然后迭代并删除不是BR
的元素。
var poststr = jsonobject.responseData.feed.entries[0].content;
var els = post.getElementsByTagName("*");
for (var i = els.length; i--; ) {
if (els[i].nodeName !== "BR") {
unwrap(els[i]);
}
}
这是unwrap
函数......
function unwrap(el) {
while (el.childNodes[0]) {
el.parentNode.insertBefore(el.childNodes[0], el);
}
el.parentNode.removeChild(el);
}
DEMO: http://jsfiddle.net/d4q6myme/
这使您可以对插入到DOM中的元素进行非常细粒度和可靠的控制,而不必采用使用正则表达式的容易出错的做法。