জাভাস্ক্রিপ্টে বিশেষ অক্ষরগুলিকে এইচটিএমএল রূপান্তর করুন


121

কোনো এক জানেন না কিভাবে বিশেষ অক্ষর রূপান্তর করতে HTMLJavascript?

উদাহরণ:

  • &(অ্যাম্পারস্যান্ড) হয়ে যায় &amp
  • "(ডাবল উদ্ধৃতি) &quotকখন ENT_NOQUOTESসেট করা থাকে না।
  • '(একক উদ্ধৃতি) সেট হয়ে &#039গেলেই ENT_QUOTESহয়।
  • <(এর চেয়ে কম) হয়ে যায় &lt
  • >(এর চেয়েও বড়) হয়ে যায় &gt


আপনি এই লাইব্রেরিটি ব্যবহার করতে পারেন: npmjs.com/package/utf8
Camilo Ortegón

উত্তর:


77

আপনার এমন একটি ফাংশন দরকার যা কিছু পছন্দ করে

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

তবে একক / ডাবল উদ্ধৃতিগুলির বিভিন্ন পরিচালনা করার জন্য আপনার ইচ্ছাটি বিবেচনা করা।


স্ল্যাশ জি কি করে?
জনিবিজল

5
/gনিয়মিত প্রকাশে @ জননিবিজল মানে "গ্লোবাল"। সহজ কথায় বলতে গেলে স্ট্রিংয়ের সমস্ত উপস্থিতি প্রতিস্থাপন করা হবে। ছাড়া /gশুধুমাত্র প্রথম ম্যাচ প্রতিস্থাপিত হবে।
কেভিন গিমবেল

207

আমার মতে সর্বোত্তম উপায় হ'ল ব্রাউজারের ইনবিল্ট এইচটিএমএল এস্কেপ কার্যকারিতা অনেকগুলি কেস পরিচালনা করতে। এটি করার জন্য কেবল ডম ট্রিতে একটি উপাদান তৈরি করুন এবং innerTextআপনার স্ট্রিংটিতে উপাদানটির সেট করুন । তারপরে innerHTMLউপাদানটির পুনরুদ্ধার করুন । ব্রাউজারটি এইচটিএমএল এনকোডেড স্ট্রিংটি ফিরিয়ে দেবে।

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

পরীক্ষা রান:

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

আউটপুট:

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

এইচটিএমএল এড়িয়ে যাওয়ার এই পদ্ধতিটি প্রোটোটাইপ জেএস লাইব্রেরি দ্বারা ব্যবহৃত হয়েছে যদিও আমি যে সরল নমুনা দিয়েছি তার চেয়ে আলাদা।

দ্রষ্টব্য: আপনার নিজের এখনও উদ্ধৃতিগুলি (ডাবল এবং একক) এড়াতে হবে আপনি এখানে অন্যদের দ্বারা বর্ণিত যে কোনও পদ্ধতি ব্যবহার করতে পারেন।


3
নোট যে delete elএখানে একটি ভুল। পারফেকশনকিলস
বোঝাপড়া

আমি চেষ্টা করার পরে এটি আমার পক্ষে কিছু করে না। আমি অক্ষরগুলি অপরিবর্তিত ফিরে পেয়েছি।
মস

1
দুঃখিত, আমি বিজোড় চরিত্রগুলির সাথে পরীক্ষা করছিলাম, প্লাস ক্রোম স্নিগ্ধ এবং আপনাকে প্রকৃত এইচটিএমএল আউটপুটটি দেখায় না, তবে ফায়ারব্যাগটি (যখন উত্পন্ন উত্সটি এনকোড না করে তখন এটি কপিরাইট প্রতীকটির জন্য একটি এইচটিএমএল সত্তা দেখিয়েছিল)। এটি <>&ঠিকঠাক কাজ করে তবে নিউট্রপিক বা কোইআইঙ্কের সমাধানগুলির মতো সমস্ত নয়।
মস

20
jQuery সহ,output = $('<div>').text(input).html()
ড্রাগন

6
উভয় পদ্ধতিই '& apos এ রূপান্তর করে না; এবং "মধ্যে & quot; সুতরাং এটি এখনও এক্সএসএস আক্রমণগুলির জন্য ব্যবহার করা যেতে পারে
কেউ 10

32

এই জেনেরিক ফাংশনটি প্রত্যেকটি বর্ণমালার অক্ষরকে এইচটিএমএলকোডে (সংখ্যাসূচক) এনকোড করে:

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('');
}

এটি সত্যিই চতুর মনে হলেও আমি কেবল এটি বেসিকগুলিকে রূপান্তর করতে পারি:<>&
মস

nvm। এটি একটি কনসোল সূক্ষ্মভাবে চালিত হয়, তবে আপনি ব্রাউজারে আউটপুট দেওয়ার সময় মনে হয় এটি স্টাফ রূপান্তরিত হয়নি। এর সাথে কী হয়?
মোস

@ মোস: ব্রাউজারটি htmlencoded অক্ষরগুলি উপস্থাপন করে এমন চরিত্রগুলিকে রেন্ডার করে। এইচটিএমএল-এনকোডেড অক্ষরগুলির সুবিধাটি হ'ল ব্রাউজারের (যেমন) ডায়াক্রিটিক্যাল চরিত্রগুলির অনুবাদ সম্পর্কে অনুমান করার দরকার নেই এবং এইভাবে সর্বদা এই চরিত্রগুলিকে রেন্ডার করা উচিত re
কোইঙ্ক

আপনি অ্যারের মতো অ্যারের মতো অ্যাক্সেস বন্ধ করতে এটি পরিবর্তন করতে বিবেচনা করতে পারেন। আই 7 এবং নীচে এটি সমর্থন করে না, এবং আপনি ঠিক হিসাবে সহজেই যুক্তিসঙ্গত হিসাবে স্ট্র অফ এর কাছাকাছি CharCodeAt কল করতে পারেন। var iC = str.charCodeAt(i)
30:55

এই কোডটি এমন ± অক্ষরের জন্য সঠিক এইচটিএমএল সত্তা মান তৈরি করছে না যা & # 177 হওয়া উচিত; তবে এটি ফিরে আসছে & # 65533; যা একটি অজানা চরিত্র ।
পল

21

মজিলা থেকে ...

নোট করুন যে চারকোডএট সর্বদা 65,536 এর চেয়ে কম মান return এটি হ'ল কারণ উচ্চতর কোড পয়েন্টগুলি এক জোড়া (নিম্ন মূল্যবান) "সারোগেট" সিউডো-অক্ষর দ্বারা প্রতিনিধিত্ব করা হয় যা প্রকৃত চরিত্রটি অন্তর্ভুক্ত করতে ব্যবহৃত হয়। এ কারণে, 65,536 এবং তদূর্ধ্ব মানের স্বতন্ত্র অক্ষরের জন্য সম্পূর্ণ চরিত্রটি পরীক্ষা বা পুনরুত্পাদন করার জন্য, এই জাতীয় অক্ষরের জন্য, কেবল চারকোডএট (i) নয়, পাশাপাশি চারকোডএট (i + 1) পুনরুদ্ধার করা প্রয়োজন (যেমন পরীক্ষা করা হচ্ছে) / দুটি> বর্ণ সহ একটি স্ট্রিং পুনরুত্পাদন)।

সবচেয়ে ভালো সমাধান

/**
 * (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;
}

ব্যবহারের উদাহরণ:

html_encode("✈");

21

স্ট্রিং ব্যবহার করে এমন একটি ফাংশন তৈরি করুন 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;
}

আমি এইচটিএমএলে প্রদর্শিত আমার ইনপুট মানটিতে একক উদ্ধৃতি (') এবং ডাবল কোট (") দিয়ে সমস্যার মুখোমুখি হয়েছি user ব্যবহারকারী এটি যুক্ত করলে স্ক্রিপ্টটি
ভেঙেছিল

13

যারা একটি স্ট্রিংয়ের মতো একটি পূর্ণসংখ্যার চর কোডটি ডিকোড করতে চান তাদের &#xxx;জন্য এই ফাংশনটি ব্যবহার করুন:

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
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত কারণ এটি সবকিছুকে ডিকোড করবে।
Quesofat

এই উত্তরটি আমি খুঁজছিলাম। ধন্যবাদ।
জেনিস এইচ।

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
এটি দুর্দান্ত কাজ করে, কখনও কখনও কিছু রূপান্তর করে, বা কেবল একটি দম্পতি। তবে সাধারণভাবে, দুর্দান্ত কাজ করে। onBlur = "char_convert (এই);"
নিউট্রপিক

ওহ, আমি একটি ত্রুটি পেয়েছি "আনকচড টাইপ এরিয়ার: ক্রোমে" অপরিজ্ঞাত "এর পদ্ধতিটি" প্রতিস্থাপন "এবং ফায়ারবগে" আর্গুমেন্ট [i]। মূল্যটি অপরিজ্ঞাত "বলা যায় না।
মস

এই সমস্ত বিশেষ অক্ষরকে তার মতো একটি অ্যারেতে রাখা সম্পূর্ণ অর্থহীন। অন্যান্য উত্তর দেখুন।
গ্যাভিন

আমার জন্য সেরা সমাধান, একমাত্র যা & & iacute রূপান্তর করে; উদাহরণ স্বরূপ.
এডহোলার

আপনি কী-বোর্ড থেকে কীভাবে এই অক্ষর পাবেন? আমি জানি এই একটি নিরীহ প্রশ্ন গুঁতা ... OS X এর মধ্যে উদাহরণস্বরূপ হয়
PositiveGuy

7

dragonএটি করার সবচেয়ে পরিষ্কার উপায় দ্বারা উল্লেখ করা হয়েছিল jQuery:

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

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

আকর্ষণীয়, তবে যদি আপনার স্ট্রিংয়ে কোনও স্থান থাকে তবে এটি এটি পরিবর্তন করবে না। আরও ভাল উপায় হ'ল এনকোডুরি (আপনার স্ট্রিং) ব্যবহার করা;
মাইক গ্লেডহিল

6
ফাংশন ConvChar (স্ট্র) {
  c = {'<': '& lt;', '>': '& gt;', '&': '& amp;', '"': '& quot;'," '":' & # 039; ',
       '#': '& # 035;' };
  str.replace (/ [<&> '"#] / g, ফাংশন (গুলি) {রিটার্ন সি [গুলি];});
}

সতর্কতা (কনভচর ('<- "- & -" -> - <- \' - # - \ '->'));

ফলাফল:

করুন & lt; - করুন & quot; - এবং; - করুন & quot; - & GT; - করুন & lt; - & # 039; - & # 035; - & # 039; - & gt; দ্বারা

টেস্টেরিয়া ট্যাগে:

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

আপনি যদি লম্বা কোডে কিছুটা অক্ষর পরিবর্তন করেন তবে ...


4

একটি PREট্যাগ-এবং বেশিরভাগ এইচটিএমএল ট্যাগে- একটি ব্যাচ ফাইলের জন্য সরল পাঠ্য যা আউটপুট পুনঃনির্দেশের অক্ষর (<এবং>) ব্যবহার করে এইচটিএমএলকে ভেঙে ফেলবে, তবে এখানে আমার টিপ : কিছুতে কোনও TEXTAREAউপাদান চলে যায় - এটি ভেঙ্গে যাবে না এইচটিএমএল, মূলত কারণ আমরা একটি নিয়ন্ত্রণের অভ্যন্তরে থাকি এবং ওএস দ্বারা পরিচালিত হয়, এবং তাই এর লিখিত সামগ্রীটি এইচটিএমএল ইঞ্জিন দ্বারা বিশ্লেষণ করা হয় না।

উদাহরণ হিসাবে, বলুন আমি জাভাস্ক্রিপ্ট ব্যবহার করে আমার ব্যাচ ফাইলের সিনট্যাক্সটি হাইলাইট করতে চাই। আমি এইচটিএমএল সংরক্ষিত অক্ষর সম্পর্কে চিন্তা না করেই কেবল একটি টেক্সারিয়ায় কোডটি পেস্ট করেছি এবং টেক্সারিয়াটির innerHTMLসম্পত্তিটির স্ক্রিপ্ট প্রক্রিয়া করেছি , যা এইচটিএমএল সংরক্ষিত অক্ষরগুলির সাথে সম্পর্কিত ISO-8859-1 সত্ত্বাগুলির দ্বারা প্রতিস্থাপনের পাঠ্যের মূল্যায়ন করে।

আপনি যখন কোনও উপাদানের innerHTML(এবং outerHTML) সম্পত্তি পুনরুদ্ধার করবেন তখন ব্রাউজারগুলি স্বয়ংক্রিয়ভাবে বিশেষ অক্ষরগুলি থেকে পালাতে পারে । একটি টেক্সেরিয়া ব্যবহার করে (এবং কে জানে, টাইপ পাঠ্যের একটি ইনপুট) কেবল আপনাকে রূপান্তর (ম্যানুয়ালি বা কোডের মাধ্যমে) করা থেকে বাঁচায়।

আমি আমার কৌশলটি হাইলাইটার পরীক্ষার জন্য এই কৌশলটি ব্যবহার করি এবং যখন আমি রচনা এবং পরীক্ষার কাজটি করি তখন আমি কেবল পাঠ্যকে ভিউ থেকে আড়াল করি।


3

আপনার যদি সমস্ত স্ট্যান্ডার্ডাইজড নামযুক্ত চরিত্রের রেফারেন্স , ইউনিকোড এবং দ্ব্যর্থহীন অ্যাম্পারস্যান্ডগুলির জন্য সমর্থন প্রয়োজন , তবে তিনি লাইব্রেরির একমাত্র 100% নির্ভরযোগ্য সমাধান যা আমি অবগত!


উদাহরণ ব্যবহার

he.encode('foo © bar ≠ baz 𝌆 qux'); 
// Output : 'foo &#xA9; bar &#x2260; baz &#x1D306; qux'

he.decode('foo &copy; bar &ne; baz &#x1D306; qux');
// Output : 'foo © bar ≠ baz 𝌆 qux'

3

একটি কার্যনির্বাহী:

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);
    }
}

আর একটি যা আমরা এখন ব্যবহার করি তা কাজ করে। উপরের একটি আমার পরিবর্তে এটি একটি স্ক্রিপ্ট কল করে এবং রূপান্তরিত কোডটি ফেরত দেয়। কেবলমাত্র ছোট টেক্সারিগুলিতে ভাল (যার অর্থ নিবন্ধ / ব্লগ ect এ পূর্ণ নয় ...)


উপরে। বেশিরভাগ চরগুলিতে কাজ করে।

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;");

আমি একটি জাভাস্ক্রিপ্ট ফাইল তৈরি করেছি যার উপরেরগুলি সহ অনেকগুলি কার্যকারিতা রয়েছে। http://www.neotropicsolutions.com/JSChars.zip

সমস্ত ফাইল অন্তর্ভুক্ত করা হয়। আমি jQuery 1.4.4 যোগ করেছি। কেবল কারণ আমি অন্যান্য সংস্করণে সমস্যাগুলি দেখেছি, তবুও সেগুলি চেষ্টা করে দেখতে।

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>

আপনি কেবল উপরের কোডটি ব্যবহার করে বিশেষ অক্ষরকে এইচটিএমএল রূপান্তর করতে পারেন।


2

এই প্রসঙ্গে আমি খুব দরকারী খুঁজে পেয়েছি এখানে একটি ভাল গ্রন্থাগার রয়েছে।

https://github.com/mathiasbynens/he

এর লেখকের মতে:

এটি এইচটিএমএল অনুসারে সমস্ত প্রমিত নামযুক্ত চরিত্রের রেফারেন্সকে সমর্থন করে, একটি ব্রাউজারের মতোই অস্পষ্ট এম্পারস্যান্ডগুলি এবং অন্যান্য প্রান্তের কেসগুলি পরিচালনা করে, একটি বিস্তৃত পরীক্ষার স্যুট আছে এবং - অন্যান্য অনেক জাভাস্ক্রিপ্ট সমাধানের বিপরীতে - তিনি জাস্ট্রিক ইউনিকোড প্রতীকগুলি ঠিকঠাক পরিচালনা করেন


মাথিয়াদের পক্ষে এই সরঞ্জামটি github.com/mathiasbynens/ খুব ভাল এবং অনলাইন খেলার মাঠও রয়েছে
মোহাম্মদ হুসেন

1

এখানে জ্যাকুরির প্রয়োজন ছাড়াই আমি কয়েকটি পদ্ধতি ব্যবহার করি:

আপনি আপনার স্ট্রিংয়ের প্রতিটি অক্ষরকে এনকোড করতে পারেন :

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

অথবা (এবং, অবিচ্ছিন্ন, <,>, "এবং ') এর মতো উদ্বেগের জন্য কেবল প্রধান নিরাপদ এনকোডিং অক্ষরকে লক্ষ্য করুন :

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

এটি সরাসরি আপনার প্রশ্নের উত্তর দেয় না, তবে আপনি যদি innerHTMLকোনও উপাদানটির মধ্যে পাঠ্য লেখার জন্য ব্যবহার করে থাকেন এবং আপনি এনকোডিংয়ের সমস্যায় পড়ে থাকেন তবে কেবল ব্যবহার করুন textContent, যেমন:

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

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

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

0

আমরা DOMParserবিশেষ অক্ষর রূপান্তর জন্য জাভাস্ক্রিপ্ট ব্যবহার করতে পারেন ।

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

0

জেএসে এক্সএমএল এস্কেপ চারগুলি এনকোড করার সহজ ফাংশনটি নীচে দেওয়া হয়েছে

Encoder.htmlEncode (unsafeText);


0

আপনি টেক্সট () থেকে .html () এ ফাংশনটি প্রতিস্থাপন করে এটি ঠিক করতে পারেন। এটা আমার জন্য কাজ করে।


-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>      

পরীক্ষার জন্য এটি ব্যবহার করুন : http://www.w3schools.com/js/tryit.asp?filename=tryjs_text


-1

হ্যাঁ, তবে যদি আপনাকে পরিবর্তিত রূপ পরিবর্তন না করে ফলস্বরূপ স্ট্রিংটি কোথাও sertোকানোর প্রয়োজন হয়, আপনার এটি করতে হবে:

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


-4

জাভা স্ক্রিপ্ট ফাংশন এস্কেপ () ব্যবহার করুন , এটি আপনাকে স্ট্রিংগুলি এনকোড করতে দেয়।

যেমন,

escape("yourString");

1
এইচটিএমএল নয় এমন ইউআরএল রাখার জন্য এনকোড করুন (এবং এটি ইউনিকোডের জন্য ভেঙে ফাংশনটি যাইহোক হ্রাস করা হবে)।
কোয়ান্টিন

-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;

}

এই সমাধান এমনকি একটি জাভাস্ক্রিপ্ট কোড? কারণ আমার কাছে জাভা বা সি # এর মতো দেখাচ্ছে।
মিঃ টি কে

এটি জাভাস্ক্রিপ্ট নয়।
ডিয়েগো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.