问题
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 © 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 ©
into &copy;
. When displayed &
turns into &
.
The question doesn't specify the language, but in JavaScript you'd do
var content = "© 2013 blah foo inc";
var encoded = content.replace( /&/g, '&' );
回答2:
As I understand that you want to convert html entity name (©
) into it's character (©) in input type text
/textarea
.
var content = "© 2014 blah foo inc";
var copyright = $('<div>').html('©').text();
var encoded = content.replace(/©/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