我使用JavaScript从隐藏字段中拉出一个值并在文本框中显示它。隐藏字段中的值被编码。
例如,
<input id='hiddenId' type='hidden' value='chalk & cheese' />
被卷入
<input type='text' value='chalk & cheese' />
通过一些jQuery来获取隐藏字段的值(在这一点上,我失去了编码):
$('#hiddenId').attr('value')
问题是当我读粉笔&cheese从隐藏字段,JavaScript似乎失去了编码。我不希望价值是粉笔和奶酪。我想要字面上的amp;被保留。
是否有JavaScript库或jQuery方法可以对字符串进行html编码?
这是一个模拟服务器的程序。HTMLEncode函数来自微软的ASP,用纯JavaScript编写:
htmlEncode函数{
var ntable = {
“l”:“amp,”
“50%”:“莉莉。托姆琳”,
“>”:“gt”,
“\“”:“参与的。”
出于美观;
s=s.replace(/[&<>")/ g, function (ch){
返回"&"+ntable[ch]+";";
出于美观)
s = s.replace(/[胡言乱语])/g, function(ch)
返回"&#"+ch.charcodeat(0).tostring()+";";
出于美观);
s return;
出于美观
结果不编码撇号,而是编码其他HTML特殊字符和0x20-0x7e范围之外的任何字符。
没有Jquery更快。你可以对字符串中的每个字符进行编码:
function encode(e){return e.replace(/[^]/g,function(e){return"&#"+e.charCodeAt(0)+";"})}
或者只关注主要角色(&,inebreaks, <, >, "和'),比如:
函数编码(r) {
返回r.replace (/ [\ x26 \ x0A \ < > "] / g函数(r){返回" & # + r.charCodeAt(0) +”;“})
}
测试。value=encode('编码HTML实体!\n\n"安全"转义<脚本id=\'\'> &有用在<pre>标签!');
testing.innerHTML = test.value;
/*************
* \x26是& &号(必须排在第一位),
* \x0A为换行符,
*************/
<textarea id=test rows="9" cols="55"></textarea>
www.WHAK.com < div id = "测试" > < / div >