Ubah karakter khusus menjadi HTML dalam Javascript


121

Apakah ada yang tahu cara mengubah karakter khusus menjadi HTMLin Javascript?

Contoh:

  • &(ampersand) menjadi &amp.
  • "(kutip ganda) menjadi &quotsaat ENT_NOQUOTEStidak disetel.
  • '(kutipan tunggal) menjadi &#039hanya jika ENT_QUOTESdisetel.
  • <(kurang dari) menjadi &lt.
  • >(lebih besar dari) menjadi &gt.


Anda dapat menggunakan perpustakaan ini: npmjs.com/package/utf8
Camilo Ortegón

Jawaban:


77

Anda membutuhkan fungsi yang melakukan sesuatu seperti

return mystring.replace(/&/g, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/"/g, "&quot;");

Tetapi dengan mempertimbangkan keinginan Anda untuk penanganan tanda kutip tunggal / ganda yang berbeda.


apa yang dilakukan slash g?
JohnnyBizzle

5
@JohnnyBizzle /gdalam ekspresi reguler berarti "global". Sederhananya, semua kemunculan string akan diganti. Tanpa /ghanya pertandingan pertama akan diganti.
Kevin Gimbel

207

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 innerTextelemen tersebut ke string Anda. Kemudian ambil innerHTMLelemennya. Browser akan mengembalikan string yang dikodekan HTML.

function HtmlEncode(s)
{
  var el = document.createElement("div");
  el.innerText = el.textContent = s;
  s = el.innerHTML;
  return s;
}

Uji coba:

alert(HtmlEncode('&;\'><"'));

Keluaran:

&amp;;'&gt;&lt;"

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.


3
perhatikan bahwa delete elada kesalahan di sini. perfectionkills.com/understanding-delete
gblazex

Ini tidak melakukan apa-apa untuk saya ketika saya mencobanya. Saya mendapatkan karakter kembali tidak berubah.
Lumut

1
Maaf, saya menguji dengan karakter aneh, ditambah Chrome licik dan tidak menunjukkan keluaran HTML yang sebenarnya, tetapi Firebug melakukannya (sebenarnya itu menunjukkan entitas html untuk simbol hak cipta ketika sumber yang dihasilkan tidak menyandikannya). Ini berfungsi dengan baik <>&tetapi tidak mencakup semua solusi Neotropic atau KooiInc.
Lumut

20
dengan jQuery,output = $('<div>').text(input).html()
dragon

6
Kedua metode tidak mengubah 'menjadi & apos; dan "ke & quot; Jadi masih bisa digunakan untuk serangan XSS.
Seseorang

32

Fungsi umum ini mengkodekan setiap karakter non alfabet ke kode html-nya (numerik):

function HTMLEncode(str) {
    var i = str.length,
        aRet = [];

    while (i--) {
        var iC = str[i].charCodeAt();
        if (iC < 65 || iC > 127 || (iC>90 && iC<97)) {
            aRet[i] = '&#'+iC+';';
        } else {
            aRet[i] = str[i];
        }
    }
    return aRet.join('');
}

Ini terdengar sangat pintar tetapi saya hanya bisa mendapatkannya untuk mengubah dasar-dasarnya:<>&
Moss

nvm. Ini berjalan di konsol dengan baik, tetapi ketika Anda mengeluarkan ke browser sepertinya itu belum mengubah barang. Ada apa dengan itu?
Lumut

@Moss: browser merender karakter yang dikodekan html ke karakter yang mereka wakili. Keuntungan dari karakter yang dikodekan html adalah bahwa browser tidak harus menebak-nebak tentang terjemahan dari (misalnya) karakter diakritik dan dengan demikian selalu membuat karakter tersebut seperti seharusnya dirender.
KooiInc

Anda mungkin mempertimbangkan untuk mengubah ini untuk menghapus akses mirip larik dari str. IE7 dan di bawahnya tidak mendukung itu, dan Anda dapat dengan mudah memanggil charCodeAt langsung dari str dengan i sebagai argumennya. var iC = str.charCodeAt(i)
Mengejar

Kode ini tidak menghasilkan nilai Entitas HTML yang benar untuk karakter ± yang seharusnya & # 177; tetapi kembali & # 65533; yang merupakan karakter yang tidak diketahui .
Paul

21

Dari Mozilla ...

Perhatikan bahwa charCodeAt akan selalu mengembalikan nilai yang kurang dari 65.536. Ini karena poin kode yang lebih tinggi diwakili oleh sepasang karakter pseudo "pengganti" (bernilai lebih rendah) yang digunakan untuk membentuk karakter sebenarnya. Oleh karena itu, untuk memeriksa atau mereproduksi karakter lengkap untuk karakter individu bernilai 65.536 ke atas, untuk karakter seperti itu, perlu untuk mengambil tidak hanya charCodeAt (i), tetapi juga charCodeAt (i + 1) (seolah-olah memeriksa / mereproduksi string dengan dua> huruf).

Solusi terbaik

/**
 * (c) 2012 Steven Levithan <http://slevithan.com/>
 * MIT license
 */
if (!String.prototype.codePointAt) {
    String.prototype.codePointAt = function (pos) {
        pos = isNaN(pos) ? 0 : pos;
        var str = String(this),
            code = str.charCodeAt(pos),
            next = str.charCodeAt(pos + 1);
        // If a surrogate pair
        if (0xD800 <= code && code <= 0xDBFF && 0xDC00 <= next && next <= 0xDFFF) {
            return ((code - 0xD800) * 0x400) + (next - 0xDC00) + 0x10000;
        }
        return code;
    };
}

/**
 * Encodes special html characters
 * @param string
 * @return {*}
 */
function html_encode(string) {
    var ret_val = '';
    for (var i = 0; i < string.length; i++) { 
        if (string.codePointAt(i) > 127) {
            ret_val += '&#' + string.codePointAt(i) + ';';
        } else {
            ret_val += string.charAt(i);
        }
    }
    return ret_val;
}

Contoh penggunaan:

html_encode("✈");

21

Buat fungsi yang menggunakan string replace

function convert(str)
{
  str = str.replace(/&/g, "&amp;");
  str = str.replace(/>/g, "&gt;");
  str = str.replace(/</g, "&lt;");
  str = str.replace(/"/g, "&quot;");
  str = str.replace(/'/g, "&#039;");
  return str;
}

Saya menghadapi masalah dengan hanya tanda kutip tunggal (') & tanda kutip ganda (") di nilai masukan saya untuk ditampilkan dalam html. Skrip rusak jika pengguna menambahkannya.
Dharam Mali

13

Bagi mereka yang ingin mendekode kode karakter integer seperti &#xxx;di dalam string, gunakan fungsi ini:

function decodeHtmlCharCodes(str) { 
  return str.replace(/(&#(\d+);)/g, function(match, capture, charCode) {
    return String.fromCharCode(charCode);
  });
}

// Will output "The show that gained int’l reputation’!"
console.log(decodeHtmlCharCodes('The show that gained int&#8217;l reputation&#8217;!'));

ES6

const decodeHtmlCharCodes = str => 
  str.replace(/(&#(\d+);)/g, (match, capture, charCode) => 
    String.fromCharCode(charCode));

// Will output "The show that gained int’l reputation’!"
console.log(decodeHtmlCharCodes('The show that gained int&#8217;l reputation&#8217;!'));


3
Ini harus menjadi jawaban yang diterima karena ini akan memecahkan kode semuanya.
Quesofat

Inilah jawaban yang saya cari. Terima kasih.
Dzenis H.17

8
function char_convert() {

    var chars = ["©","Û","®","ž","Ü","Ÿ","Ý","$","Þ","%","¡","ß","¢","à","£","á","À","¤","â","Á","¥","ã","Â","¦","ä","Ã","§","å","Ä","¨","æ","Å","©","ç","Æ","ª","è","Ç","«","é","È","¬","ê","É","­","ë","Ê","®","ì","Ë","¯","í","Ì","°","î","Í","±","ï","Î","²","ð","Ï","³","ñ","Ð","´","ò","Ñ","µ","ó","Õ","¶","ô","Ö","·","õ","Ø","¸","ö","Ù","¹","÷","Ú","º","ø","Û","»","ù","Ü","@","¼","ú","Ý","½","û","Þ","€","¾","ü","ß","¿","ý","à","‚","À","þ","á","ƒ","Á","ÿ","å","„","Â","æ","…","Ã","ç","†","Ä","è","‡","Å","é","ˆ","Æ","ê","‰","Ç","ë","Š","È","ì","‹","É","í","Œ","Ê","î","Ë","ï","Ž","Ì","ð","Í","ñ","Î","ò","‘","Ï","ó","’","Ð","ô","“","Ñ","õ","”","Ò","ö","•","Ó","ø","–","Ô","ù","—","Õ","ú","˜","Ö","û","™","×","ý","š","Ø","þ","›","Ù","ÿ","œ","Ú"]; 
    var codes = ["&copy;","&#219;","&reg;","&#158;","&#220;","&#159;","&#221;","&#36;","&#222;","&#37;","&#161;","&#223;","&#162;","&#224;","&#163;","&#225;","&Agrave;","&#164;","&#226;","&Aacute;","&#165;","&#227;","&Acirc;","&#166;","&#228;","&Atilde;","&#167;","&#229;","&Auml;","&#168;","&#230;","&Aring;","&#169;","&#231;","&AElig;","&#170;","&#232;","&Ccedil;","&#171;","&#233;","&Egrave;","&#172;","&#234;","&Eacute;","&#173;","&#235;","&Ecirc;","&#174;","&#236;","&Euml;","&#175;","&#237;","&Igrave;","&#176;","&#238;","&Iacute;","&#177;","&#239;","&Icirc;","&#178;","&#240;","&Iuml;","&#179;","&#241;","&ETH;","&#180;","&#242;","&Ntilde;","&#181;","&#243;","&Otilde;","&#182;","&#244;","&Ouml;","&#183;","&#245;","&Oslash;","&#184;","&#246;","&Ugrave;","&#185;","&#247;","&Uacute;","&#186;","&#248;","&Ucirc;","&#187;","&#249;","&Uuml;","&#64;","&#188;","&#250;","&Yacute;","&#189;","&#251;","&THORN;","&#128;","&#190;","&#252","&szlig;","&#191;","&#253;","&agrave;","&#130;","&#192;","&#254;","&aacute;","&#131;","&#193;","&#255;","&aring;","&#132;","&#194;","&aelig;","&#133;","&#195;","&ccedil;","&#134;","&#196;","&egrave;","&#135;","&#197;","&eacute;","&#136;","&#198;","&ecirc;","&#137;","&#199;","&euml;","&#138;","&#200;","&igrave;","&#139;","&#201;","&iacute;","&#140;","&#202;","&icirc;","&#203;","&iuml;","&#142;","&#204;","&eth;","&#205;","&ntilde;","&#206;","&ograve;","&#145;","&#207;","&oacute;","&#146;","&#208;","&ocirc;","&#147;","&#209;","&otilde;","&#148;","&#210;","&ouml;","&#149;","&#211;","&oslash;","&#150;","&#212;","&ugrave;","&#151;","&#213;","&uacute;","&#152;","&#214;","&ucirc;","&#153;","&#215;","&yacute;","&#154;","&#216;","&thorn;","&#155;","&#217;","&yuml;","&#156;","&#218;"];

    for(x=0; x<chars.length; x++){
        for (i=0; i<arguments.length; i++){
            arguments[i].value = arguments[i].value.replace(chars[x], codes[x]);
        }
    }
 }

char_convert(this);

1
Ini berfungsi dengan baik., Tetapi untuk beberapa alasan ketika dicampur dengan beberapa Fungsi JQuery, itu gagal. Kadang-kadang menjadi mengkonversi beberapa, atau hanya beberapa. Tapi secara umum, bekerja dengan baik. onBlur = "char_convert (ini);"
Neotropik

Eh, saya mendapatkan pesan kesalahan "Uncaught TypeError: Tidak dapat memanggil metode 'ganti' dari yang tidak ditentukan" di Chrome dan "argumen [i]. Nilai tidak ditentukan" di Firebug.
Lumut

menempatkan semua karakter khusus itu ke dalam array seperti itu sama sekali tidak ada gunanya. lihat jawaban lain.
Gavin

Solusi terbaik bagi saya, satu-satunya yang mengubah í menjadi & iacute; sebagai contoh.
Edhowler

Bagaimana Anda mendapatkan karakter tersebut dari keyboard Anda? Saya tahu ini adalah pertanyaan konyol ... di OS X misalnya
PositiveGuy

7

Seperti yang telah disebutkan dragon, cara terbersih untuk melakukannya adalah dengan jQuery:

function HtmlEncode(s) {
    return $('<div>').text(s).html();
}

function HtmlDecode(s) {
    return $('<div>').html(s).text();
}

Menarik, tetapi jika string Anda berisi spasi, ini tidak akan mengubahnya. Cara yang lebih baik adalah dengan menggunakan encodeURI (yourString);
Mike Gledhill

6
function ConvChar (str) {
  c = {'<': '& lt;', '>': '& gt;', '&': '& amp;', '"': '& quot;'," '":' & # 039; ',
       '#': '& # 035;' };
  return str.replace (/ [<&> '"#] / g, function (s) {return c [s];});
}

peringatan (ConvChar ('<- "- & -" -> - <- \' - # - \ '->'));

Hasil:

& lt; - & quot; - & amp; - & quot; - & gt; - & lt; - & # 039; - & # 035; - & # 039; - & gt;

Dalam tag testarea:

<- "- & -" -> - <-'- # -'->

Jika Anda hanya akan mengubah sedikit karakter dalam kode panjang ...


4

Dalam PREtag -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 dalam TEXTAREAelemen -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 innerHTMLproperti 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(dan outerHTML) 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.



3

solusi:

var temp = $("div").text("<");
var afterEscape = temp.html(); // afterEscape == "&lt;"

2
var swapCodes   = new Array(8211, 8212, 8216, 8217, 8220, 8221, 8226, 8230, 8482, 169, 61558, 8226, 61607);
var swapStrings = new Array("--", "--", "'",  "'",  '"',  '"',  "*",  "...", "&trade;", "&copy;", "&bull;", "&bull;", "&bull;");

var TextCheck = {
    doCWBind:function(div){
        $(div).bind({
            bind:function(){
                TextCheck.cleanWord(div);
            },
            focus:function(){
                TextCheck.cleanWord(div);
            },
            paste:function(){
                TextCheck.cleanWord(div);
            }
        }); 
    },
    cleanWord:function(div){
        var output = $(div).val();
        for (i = 0; i < swapCodes.length; i++) {
            var swapper = new RegExp("\\u" + swapCodes[i].toString(16), "g");
            output = output.replace(swapper, swapStrings[i]);
        }
        $(div).val(output);
    }
}

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.

var swapCodes   = new Array(8211, 8212, 8216, 8217, 8220, 8221, 8226, 8230, 8482, 61558, 8226, 61607,161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 338, 339, 352, 353, 376, 402);
var swapStrings = new Array("--", "--", "'",  "'",  '"',  '"',  "*",  "...", "&trade;", "&bull;", "&bull;", "&bull;", "&iexcl;", "&cent;", "&pound;", "&curren;", "&yen;", "&brvbar;", "&sect;", "&uml;", "&copy;", "&ordf;", "&laquo;", "&not;", "&shy;", "&reg;", "&macr;", "&deg;", "&plusmn;", "&sup2;", "&sup3;", "&acute;", "&micro;", "&para;", "&middot;", "&cedil;", "&sup1;", "&ordm;", "&raquo;", "&frac14;", "&frac12;", "&frac34;", "&iquest;", "&Agrave;", "&Aacute;", "&Acirc;", "&Atilde;", "&Auml;", "&Aring;", "&AElig;", "&Ccedil;", "&Egrave;", "&Eacute;", "&Ecirc;", "&Euml;", "&Igrave;", "&Iacute;", "&Icirc;", "&Iuml;", "&ETH;", "&Ntilde;", "&Ograve;", "&Oacute;", "&Ocirc;", "&Otilde;", "&Ouml;", "&times;", "&Oslash;", "&Ugrave;", "&Uacute;", "&Ucirc;", "&Uuml;", "&Yacute;", "&THORN;", "&szlig;", "&agrave;", "&aacute;", "&acirc;", "&atilde;", "&auml;", "&aring;", "&aelig;", "&ccedil;", "&egrave;", "&eacute;", "&ecirc;", "&euml;", "&igrave;", "&iacute;", "&icirc;", "&iuml;", "&eth;", "&ntilde;", "&ograve;", "&oacute;", "&ocirc;", "&otilde;", "&ouml;", "&divide;", "&oslash;", "&ugrave;", "&uacute;", "&ucirc;", "&uuml;", "&yacute;", "&thorn;", "&yuml;", "&#338;", "&#339;", "&#352;", "&#353;", "&#376;", "&#402;");

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.

Requires: jQuery & jQuery Impromptu from: http://trentrichardson.com/Impromptu/index.php

1. Word Count
2. Character Conversion
3. Checks to ensure this is not passed: "notsomeverylongstringmissingspaces"
4. Checks to make sure ALL IS NOT ALL UPPERCASE.
5. Strip HTML

    // Word Counter
    $.getScript('js/characters.js',function(){
            $('#adtxt').bind("keyup click blur focus change paste",
                function(event){
                    TextCheck.wordCount(30, "#adtxt", "#adtxt_count", event);
            });
            $('#adtxt').blur(
                function(event){
                    TextCheck.check_length('#adtxt'); // unsures properly spaces-not one long word
                    TextCheck.doCWBind('#adtxt');// char conversion
            });

            TextCheck.wordCount(30, "#adtxt", "#adtxt_count", false);
        });

    //HTML
    <textarea name="adtxt" id="adtxt" rows="10" cols="70" class="wordCount"></textarea>
<div id="adtxt_count" class="clear"></div>

    // Just Character Conversions:
    TextCheck.doCWBind('#myfield');

    // Run through form fields in a form for case checking.
    // Alerts user when field is blur'd.
    var labels = new Array("Brief Description","Website URL","Contact Name","Website","Email","Linkback URL");
    var checking = new Array("descr","title","fname","website","email","linkback");
    TextCheck.check_it(checking,labels);

    // Extra security to check again, make sure form is not submitted
    var pass = TextCheck.validate(checking,labels);
    if(pass){
        //do form actions
    }


    //Strip HTML
    <textarea name="adtxt" id="adtxt" rows="10" cols="70" onblur="TextCheck.stripHTML(this);"></textarea>

2
 <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>html</title>  
      <script>
      $(function() {   
      document.getElementById('test').innerHTML = "&amp;";
      });

      </script>
    </head>
    <body>
    <div id="test"></div>
    </body>
    </html>

Anda cukup mengubah karakter khusus ke html menggunakan kode di atas.


2

Inilah perpustakaan bagus yang menurut saya sangat berguna dalam konteks ini.

https://github.com/mathiasbynens/he

Menurut penulisnya:

Ini mendukung semua referensi karakter bernama standar sesuai HTML, menangani ampersand ambigu dan kasus tepi lainnya seperti browser, memiliki rangkaian pengujian yang luas, dan - bertentangan dengan banyak solusi JavaScript lainnya - ia menangani simbol Unicode astral dengan baik


Alat ini github.com/mathiasbynens/he untuk mathias sangat bagus dan memiliki taman bermain online juga
Mohamed Hussain

1

Berikut adalah beberapa metode yang saya gunakan tanpa memerlukan Jquery:

Anda dapat menyandikan setiap karakter dalam string Anda:

function encode(e){return e.replace(/[^]/g,function(e){return"&#"+e.charCodeAt(0)+";"})}

Atau cukup targetkan karakter enkode aman utama untuk dikhawatirkan (&, inebreaks, <,>, "dan ') seperti:

function encode(r){
return r.replace(/[\x26\x0A\<>'"]/g,function(r){return"&#"+r.charCodeAt(0)+";"})
}

test.value=encode('How to encode\nonly html tags &<>\'" nice & fast!');

/*************
* \x26 is &ampersand (it has to be first),
* \x0A is newline,
*************/
<textarea id=test rows="9" cols="55">www.WHAK.com</textarea>


0
function escape (text)
{
  return text.replace(/[<>\&\"\']/g, function(c) {
    return '&#' + c.charCodeAt(0) + ';';
  });
}

alert(escape("<>&'\""));

0

Ini tidak langsung menjawab pertanyaan Anda, tetapi jika Anda menggunakan innerHTMLuntuk menulis teks dalam elemen dan Anda mengalami masalah encoding, cukup gunakan textContent, yaitu:

var s = "Foo 'bar' baz <qux>";

var element = document.getElementById('foo');
element.textContent = s;

// <div id="foo">Foo 'bar' baz <qux></div>

0

Kita dapat menggunakan javascript DOMParseruntuk konversi karakter khusus.

const parser = new DOMParser();
const convertedValue = (parser.parseFromString("&#039 &amp &#039 &lt &gt", "application/xml").body.innerText;

0

Berikut adalah fungsi sederhana untuk mengenkode karakter escape xml di JS

Encoder.htmlKode Kode (unsafeText);


0

Anda dapat memperbaikinya dengan mengganti fungsi .text () menjadi .html (). itu bekerja untuk saya.


-1
<html>
<body>
<script type="text/javascript">
var str= "&\"'<>";
alert('B4 Change:\n' + str);
str= str.replace(/\&/g,'&amp;');
str= str.replace(/</g,'&lt;');
str= str.replace(/>/g,'&gt;');
str= str.replace(/\"/g,'&quot;');
str= str.replace(/\'/g,'&#039;');
alert('After change:\n' + str);
</script>
</body>
</html>      

gunakan ini untuk menguji: http://www.w3schools.com/js/tryit.asp?filename=tryjs_text


-1

Ya, tetapi jika Anda perlu memasukkan string yang dihasilkan di suatu tempat tanpa mengubahnya kembali, Anda perlu melakukan:

str.replace(/'/g,"&amp;amp;#39;"); // and so on


-4

Gunakan javaScript Function escape () , yang memungkinkan Anda menyandikan string.

misalnya,

escape("yourString");

1
Enkode untuk memasukkan URL bukan untuk HTML (dan fungsinya tetap tidak digunakan lagi karena rusak untuk Unicode).
Quentin

-4
public static string HtmlEncode (string text)
{
    string result;
    using (StringWriter sw = new StringWriter())
    {
        var x = new HtmlTextWriter(sw);
        x.WriteEncodedText(text);
        result = sw.ToString();
    }
    return result;

}

Apakah solusi ini bahkan berupa kode javascript? Karena terlihat seperti JAVA atau C # bagi saya.
Mr.TK

Ini bukan Javascript.
Diego Fortes
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.