Rumah > Soal Jawab > teks badan
P粉3230507802023-09-03 16:42:37
Tiada cara yang munasabah untuk menyimpan dokumen yang rosak seperti yang anda siarkan, tetapi dengan mengandaikan anda meletakkan >
和类似字符替换为其相关实体,例如: > ;
dalam teks, anda boleh meletakkan dokumen yang anda ingin terima ke dalam perpustakaan yang sesuai seperti DomDocument yang akan menjaga berehat.
$input = <<<_E_ < div class='test' >1 > 0 is < b >true</ b> and apples >>> bananas< / div > _E_; $input = preg_replace([ '#<\s+#', '#</\s+#' ], [ '<', '</' ], $input); $d = new DomDocument(); $d->loadHTML($input, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); var_dump($d->saveHTML());
Keluaran:
string(80) "<div class="test">1 > 0 is <b>true</b> and apples >>> bananas</div>"
P粉0644484492023-09-03 11:17:47
Regex ini juga berfungsi:
Ia membahagikan bahagian yang sah dalam teg HTML kepada empat bahagian dan menggantikan bahagian yang tinggal (ruang) dengannya.
/(<)s*(/?)s*([^<>]*S)s*(>)/g
(<)
- Tangkap kurungan sudut bukaan (bahagian 1) s*
- sepadan dengan mana-mana ruang (/?)
- Menangkap garis miring ke belakang pilihan (Bahagian 2) s*
- sepadan dengan mana-mana ruang selepas garis miring ke belakang ([^<>]*S)
- Tangkap kandungan dalam tag tanpa ruang di belakang (bahagian 3) s*
- Padankan ruang selepas kandungan dan sebelum kurungan sudut kanan(>)
- Menangkap kurungan sudut kanan (bahagian 4) const reg = /(<)\s*(\/?)\s*([^<>]*\S)\s*(>)/g const str = "< div class='test' >1 > 0 is < b >true< / b > and apples >>> bananas< / div >" const newStr = str.replace(reg, ""); console.log(newStr);