show text value of html © entity in input type=text?

ぃ、小莉子 提交于 2019-12-11 16:45:14

问题


I'm loading a value from a json file which contains a copyright character. It's stored in the json as a html entity - © which renders ©.

Handlebars is rendering a file editor for me in such a way that if the string is long it gets made into a textarea, and if it's short then it becomes a text input box instead. When rendered to a <textarea> the value is shown as its string version - something like &copy; 2013 blah foo inc, whereas if the value is written to a <input type='text'> value, then the browser renders it as its entity equivalent, no the string itself. I can't figure out how to make the text value of the entity itself appear, not its interpreted shape.


回答1:


The trick is to change &copy; into &amp;copy;. When displayed &amp; turns into &.

The question doesn't specify the language, but in JavaScript you'd do

var content = "&copy; 2013 blah foo inc";
var encoded = content.replace( /&/g, '&amp;' );



回答2:


As I understand that you want to convert html entity name (&copy;) into it's character (©) in input type text/textarea.

var content = "&copy; 2014 blah foo inc";
var copyright = $('<div>').html('&copy;').text();
var encoded = content.replace(/&copy;/g, copyright);
alert(encoded); // or $('#input_id').val(encoded);


来源:https://stackoverflow.com/questions/18457589/show-text-value-of-html-copy-entity-in-input-type-text

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!