<div class="body-layout" id="wide-wrapper">
<div id="wrap-all">some content will be there
{"success":1,"message":"Data Success","data":[{"title":"RECRUITMENT IN NATIONAL INSURANCE COMPANY LIMITED (NICL)","disp":"RECRUITMENT OF 205, we hide [...]","link":"\/recruitment-national-insurance-company-limited-nicl-0"},{"title":"RECRUITMENT OF PO IN BANK OF BARODA (BOB)","disp":"RECRUITMENT OF 400, we hide [...]","link":"\/recruitment-po-bank-baroda-bob"},{"title":"SBI PO Prelims Admit Card 2017","disp":"SBI PO 2017 Admit Card for, we hide [...]","link":"\/sbi-po-prelims-admit-card-2017"}]}
</div>
如何从上面的内容中只获取json字符串,是否有任何正则表达式可以过滤。
答案 0 :(得分:1)
单线答案:
var elem = document.getElementById("wrap-all").innerHTML;
console.log(JSON.parse(elem.substring(elem.indexOf('{'), elem.lastIndexOf('}')+1)));
<div class="body-layout" id="wide-wrapper">
<div id="wrap-all">some content will be there
{"success":1,"message":"Data Success","data":[{"title":"RECRUITMENT IN NATIONAL INSURANCE COMPANY LIMITED (NICL)","disp":"RECRUITMENT OF 205, we hide [...]","link":"\/recruitment-national-insurance-company-limited-nicl-0"},{"title":"RECRUITMENT OF PO IN BANK OF BARODA (BOB)","disp":"RECRUITMENT OF 400, we hide [...]","link":"\/recruitment-po-bank-baroda-bob"},{"title":"SBI PO Prelims Admit Card 2017","disp":"SBI PO 2017 Admit Card for, we hide [...]","link":"\/sbi-po-prelims-admit-card-2017"}]}
</div>
答案 1 :(得分:0)
将你的字符串包装在div中并使用选择器来获取div的文本。
<div class="body-layout" id="wide-wrapper">
<div id="wrap-all">
some content will be there
<div class="json">
{"success":1,"message":"Data Success","data":[{"title":"RECRUITMENT IN NATIONAL INSURANCE COMPANY LIMITED (NICL)","disp":"RECRUITMENT OF 205, we hide [...]","link":"\/recruitment-national-insurance-company-limited-nicl-0"},{"title":"RECRUITMENT OF PO IN BANK OF BARODA (BOB)","disp":"RECRUITMENT OF 400, we hide [...]","link":"\/recruitment-po-bank-baroda-bob"},{"title":"SBI PO Prelims Admit Card 2017","disp":"SBI PO 2017 Admit Card for, we hide [...]","link":"\/sbi-po-prelims-admit-card-2017"}]}
</div>
</div>
将textContent
与javascript
一起使用。 textContent
属性表示节点及其后代的文本内容。 MDN textContent或您可以使用innerHTML
<script>
var str = document.getElementById('json').textContent;
var json = JSON.parse(str);
console.log(json);
</script>
答案 2 :(得分:0)
如果您无法更改div中的文字,则可以使用 regular expression match 方法匹配特定字符串。
/{\s*\".*}/g
使用给定字符串中的JSON格式进行操作,该字符串将以{
结束{
开头,并且隐藏中间的任何字符
{
- 以{
\s*\".*
- 它会允许空格,&#34;,中间的任何单词
}
- 以}
var str = document.getElementById('wrap-all').innerHTML;
var JsonStr = matchExact(str);
console.log(JsonStr);
function matchExact(str) {
var r = /{\s*\".*}/g
var match = str.match(r);
return match != null && match[0];
}
&#13;
<div class="body-layout" id="wide-wrapper">
<div id="wrap-all">some content will be there
{"success":1,"message":"Data Success","data":[{"title":"RECRUITMENT IN NATIONAL INSURANCE COMPANY LIMITED (NICL)","disp":"RECRUITMENT OF 205, we hide [...]","link":"\/recruitment-national-insurance-company-limited-nicl-0"},{"title":"RECRUITMENT OF PO IN BANK OF BARODA (BOB)","disp":"RECRUITMENT OF 400, we hide [...]","link":"\/recruitment-po-bank-baroda-bob"},{"title":"SBI PO Prelims Admit Card 2017","disp":"SBI PO 2017 Admit Card for, we hide [...]","link":"\/sbi-po-prelims-admit-card-2017"}]}
</div>
&#13;
<强> Working example in Fiddle 强>
答案 3 :(得分:-1)
使用strip_tags()函数
<?php
$string = '<div class="body-layout" id="wide-wrapper">
<div id="wrap-all">
{"success":1,"message":"Data Success","data":[{"title":"RECRUITMENT IN NATIONAL INSURANCE COMPANY LIMITED (NICL)","disp":"RECRUITMENT OF 205, we hide [...]","link":"\/recruitment-national-insurance-company-limited-nicl-0"},{"title":"RECRUITMENT OF PO IN BANK OF BARODA (BOB)","disp":"RECRUITMENT OF 400, we hide [...]","link":"\/recruitment-po-bank-baroda-bob"},{"title":"SBI PO Prelims Admit Card 2017","disp":"SBI PO 2017 Admit Card for, we hide [...]","link":"\/sbi-po-prelims-admit-card-2017"}]}
</div>';
echo strip_tags($string);
?>