Apakah ada yang tahu cara mengubah karakter khusus menjadi HTML
in Javascript
?
Contoh:
&
(ampersand) menjadi&
."
(kutip ganda) menjadi"
saatENT_NOQUOTES
tidak disetel.'
(kutipan tunggal) menjadi'
hanya jikaENT_QUOTES
disetel.<
(kurang dari) menjadi<
.>
(lebih besar dari) menjadi>
.
javascript
Jin Yong
sumber
sumber
Jawaban:
Anda membutuhkan fungsi yang melakukan sesuatu seperti
Tetapi dengan mempertimbangkan keinginan Anda untuk penanganan tanda kutip tunggal / ganda yang berbeda.
sumber
/g
dalam ekspresi reguler berarti "global". Sederhananya, semua kemunculan string akan diganti. Tanpa/g
hanya pertandingan pertama akan diganti.Cara terbaik menurut saya adalah dengan menggunakan fungsi pelolosan HTML bawaan browser untuk menangani banyak kasus. Untuk melakukan ini, cukup buat elemen di pohon DOM dan setel
innerText
elemen tersebut ke string Anda. Kemudian ambilinnerHTML
elemennya. Browser akan mengembalikan string yang dikodekan HTML.Uji coba:
Keluaran:
Metode pelolosan HTML ini juga digunakan oleh pustaka Prototipe JS meskipun berbeda dari contoh sederhana yang saya berikan.
Catatan: Anda masih perlu menghilangkan tanda kutip (ganda dan tunggal) sendiri. Anda dapat menggunakan salah satu metode yang dijelaskan oleh orang lain di sini.
sumber
delete el
ada kesalahan di sini. perfectionkills.com/understanding-delete<>&
tetapi tidak mencakup semua solusi Neotropic atau KooiInc.output = $('<div>').text(input).html()
Fungsi umum ini mengkodekan setiap karakter non alfabet ke kode html-nya (numerik):
sumber
<>&
var iC = str.charCodeAt(i)
Dari Mozilla ...
Solusi terbaik
Contoh penggunaan:
sumber
Buat fungsi yang menggunakan string
replace
sumber
Bagi mereka yang ingin mendekode kode karakter integer seperti
&#xxx;
di dalam string, gunakan fungsi ini:ES6
sumber
sumber
Seperti yang telah disebutkan
dragon
, cara terbersih untuk melakukannya adalah denganjQuery
:sumber
Hasil:
Dalam tag testarea:
Jika Anda hanya akan mengubah sedikit karakter dalam kode panjang ...
sumber
Dalam
PRE
tag -dan di sebagian besar tag HTML lainnya- teks biasa untuk file batch yang menggunakan karakter pengalihan keluaran (<dan>) akan merusak HTML, tetapi berikut tip saya : apa pun yang masuk dalamTEXTAREA
elemen -it tidak akan merusak HTML, terutama karena kita berada di dalam kontrol yang dijalankan dan ditangani oleh OS, dan oleh karena itu isinya tidak diurai oleh mesin HTML.Sebagai contoh, katakanlah saya ingin menyorot sintaks file batch saya menggunakan javascript. Saya cukup menempelkan kode di area teks tanpa mengkhawatirkan karakter khusus HTML, dan meminta skrip memproses
innerHTML
properti area teks, yang mengevaluasi ke teks dengan karakter khusus HTML diganti dengan entitas ISO-8859-1 yang sesuai.Browser akan keluar dari karakter khusus secara otomatis saat Anda mengambil properti
innerHTML
(danouterHTML
) dari sebuah elemen. Menggunakan textarea (dan siapa tahu, mungkin input teks tipe) hanya menyelamatkan Anda dari melakukan konversi (secara manual atau melalui kode).Saya menggunakan trik ini untuk menguji penyorot sintaks saya, dan ketika saya selesai membuat dan menguji, saya cukup menyembunyikan area teks dari tampilan.
sumber
Jika Anda memerlukan dukungan untuk semua referensi karakter bernama standar , unicode , dan ampersand ambigu , pustaka he adalah satu-satunya solusi andal 100% yang saya ketahui!
Contoh penggunaan
sumber
solusi:
sumber
Satu lagi yang kami gunakan sekarang yang berfungsi. Satu di atas saya memilikinya memanggil skrip dan mengembalikan kode yang dikonversi. Hanya bagus untuk textarea kecil (artinya tidak lengkap di artikel / blog dll ...)
Untuk Di Atas. Bekerja pada sebagian besar karakter.
Saya membuat file javascript yang memiliki banyak fungsi termasuk di atas. http://www.neotropicsolutions.com/JSChars.zip
Semua file yang dibutuhkan disertakan. Saya menambahkan jQuery 1.4.4. Hanya karena saya melihat masalah di versi lain, belum mencobanya.
sumber
Anda cukup mengubah karakter khusus ke html menggunakan kode di atas.
sumber
Inilah perpustakaan bagus yang menurut saya sangat berguna dalam konteks ini.
https://github.com/mathiasbynens/he
Menurut penulisnya:
sumber
Berikut adalah beberapa metode yang saya gunakan tanpa memerlukan Jquery:
Anda dapat menyandikan setiap karakter dalam string Anda:
Atau cukup targetkan karakter enkode aman utama untuk dikhawatirkan (&, inebreaks, <,>, "dan ') seperti:
sumber
sumber
Ini tidak langsung menjawab pertanyaan Anda, tetapi jika Anda menggunakan
innerHTML
untuk menulis teks dalam elemen dan Anda mengalami masalah encoding, cukup gunakantextContent
, yaitu:sumber
Kita dapat menggunakan javascript
DOMParser
untuk konversi karakter khusus.sumber
Berikut adalah fungsi sederhana untuk mengenkode karakter escape xml di JS
Encoder.htmlKode Kode (unsafeText);
sumber
Anda dapat memperbaikinya dengan mengganti fungsi .text () menjadi .html (). itu bekerja untuk saya.
sumber
gunakan ini untuk menguji: http://www.w3schools.com/js/tryit.asp?filename=tryjs_text
sumber
Ya, tetapi jika Anda perlu memasukkan string yang dihasilkan di suatu tempat tanpa mengubahnya kembali, Anda perlu melakukan:
sumber
Lihat JavaScript htmlentities http://phpjs.org/functions/htmlentities:425
sumber
Gunakan javaScript Function escape () , yang memungkinkan Anda menyandikan string.
misalnya,
sumber
sumber