Saya mencoba untuk menghapus semua tag html dari sebuah string di Javascript. Inilah yang saya miliki ... Saya tidak tahu mengapa tidak berhasil .... ada yang tahu apa yang saya lakukan salah?
<script type="text/javascript">
var regex = "/<(.|\n)*?>/";
var body = "<p>test</p>";
var result = body.replace(regex, "");
alert(result);
</script>
Terima kasih banyak!
javascript
regex
Gabe
sumber
sumber
"<img src=bogus onerror=alert(1337)"
. Yang pertama gagal karena parser HTML tidak mengharuskan tag terakhir ditutup oleh a>
, dan yang kedua gagal karena pemuatan gambar dimulai bahkan sebelum pohon DOM yang diurai ditambahkan ke DOM, dan$('<img ...>')
memanggil parser HTML.>
disertakan dalam nilai atribut; seperti ini<div data="a + b > c">
Ini adalah pertanyaan lama, tetapi saya menemukan itu dan berpikir saya akan membagikan metode yang saya gunakan:
sanitized
sekarang akan berisi:"some text and some more text"
Sederhana, tidak perlu jQuery, dan tidak akan mengecewakan Anda bahkan dalam kasus yang lebih kompleks.
sumber
innerText
temp.textContent
jika ada, dan hanya mencobatemp.innerText
jika tidak ada. Browser Anda harus memiliki yang pertama, tetapi untuk browser yang tidak, yang terakhir digunakan sebagai gantinya :)Ini berhasil untuk saya.
sumber
console.log( my_html.replace(/( |<([^>]+)>)/ig, "") );
Berikut adalah cara TextAngular (WYSISYG Editor) melakukannya. Saya juga menemukan ini sebagai jawaban yang paling konsisten, yaitu TANPA REGEX.
sumber
Anda dapat menggunakan perpustakaan yang kuat untuk manajemen String yaitu undrescore.string.js
=> 'tautan'
=> 'a linkalert ("hello world!")'
Jangan lupa untuk mengimpor lib ini sebagai berikut:
sumber
Pustaka JavaScript sederhana saya bernama FuncJS memiliki fungsi yang disebut "strip_tags ()" yang melakukan tugas untuk Anda - tanpa mengharuskan Anda memasukkan ekspresi reguler.
Misalnya, Anda ingin menghapus tag dari sebuah kalimat - dengan fungsi ini, Anda dapat melakukannya seperti ini:
Ini akan menghasilkan "String ini berisi banyak tag!".
Untuk pemahaman yang lebih baik, silakan baca dokumentasi di GitHub FuncJS .
Selain itu, jika Anda mau, berikan umpan balik melalui formulir. Itu akan sangat membantu saya!
sumber
strip_tags()
bukan hanya mempromosikan perpustakaan Anda dan tidak menjelaskannya? Tautan menjelaskan penggunaan API tetapi tidak menjelaskan fungsinya .strip_tags = function(e) { var _hasTag, _tag_string; if (!(e === void 0 || e === null || e === "")) { _tag_string = e; if (typeof _tag_string === "object") { _tag_string = _tag_string.outerHTML; } _hasTag = _tag_string.match(/(<([^>]+)>)/ig); if (_hasTag) { return trim(_tag_string.replace(/(<([^>]+)>)/ig, '')); } else { return trim(_tag_string); } } else { throw new Error("The 'strip_tags' function expects one argument in the form of a string or object."); } };
Ini adalah solusi untuk tag HTML dan & nbsp dll dan Anda dapat menghapus dan menambahkan ketentuan untuk mendapatkan teks tanpa HTML dan Anda dapat menggantinya dengan apa pun.
sumber
Untuk pembersih HTML yang tepat di JS, lihat http://code.google.com/p/google-caja/wiki/JsHtmlSanitizer
sumber
sumber
Jawaban yang dipilih tidak selalu memastikan bahwa HTML dihilangkan, karena masih mungkin untuk membuat string HTML yang tidak valid melaluinya dengan membuat string seperti berikut.
Masukan ini akan memastikan bahwa stripping menyusun satu set tag untuk Anda dan akan menghasilkan:
Selain itu, fungsi teks jquery akan menghapus teks yang tidak dikelilingi oleh tag.
Berikut adalah fungsi yang menggunakan jQuery tetapi harus lebih kuat terhadap kedua kasus ini:
sumber
Cara saya melakukannya praktis satu baris.
Fungsi membuat objek Range dan kemudian membuat DocumentFragment di Range dengan string sebagai konten anak.
Kemudian ia mengambil teks dari fragmen, menghapus karakter "tak terlihat" / lebar-nol, dan memotongnya dari spasi kosong di depan / di belakang.
Saya menyadari pertanyaan ini sudah lama, saya hanya mengira solusi saya unik dan ingin dibagikan. :)
sumber
Seperti yang dinyatakan orang lain, regex tidak akan berfungsi. Luangkan waktu sejenak untuk membaca artikel saya tentang mengapa Anda tidak dapat dan tidak boleh mencoba mengurai html dengan regex, yang Anda lakukan saat mencoba untuk menghapus html dari string sumber Anda.
sumber