Javascript特殊转义字符

Javascript特殊转义字符,javascript,html-escape-characters,Javascript,Html Escape Characters,您好,我使用的JavaScript函数是从一个锚链接调用的,该锚链接传递一个具有特殊字符的标题。您能告诉我如何转义传递给函数的字符串中的单引号吗 下面给出了示例字符串 string desc="test's/test2'w"; 示例链接html "<a href="javascript:getdata(\'' + desc+ '\',);void(0);">TEST</a>" “” 因此,函数getdata没有被调用,因为它没有转义该字符 这是一个遗留系统,我只需要

您好,我使用的JavaScript函数是从一个锚链接调用的,该锚链接传递一个具有特殊字符的标题。您能告诉我如何转义传递给函数的字符串中的单引号吗

下面给出了示例字符串

string desc="test's/test2'w";
示例链接html

"<a href="javascript:getdata(\'' + desc+ '\',);void(0);">TEST</a>"
“”
因此,函数
getdata
没有被调用,因为它没有转义该字符


这是一个遗留系统,我只需要使用HTML

如果您不知道所有HTML实体的名称,您仍然可以对它们进行HTML编码

function htmlEncode(str) {
    return str.replace(/[^\da-z()\[\] .,\/\\]/g, function (m) {
        return '&#' + m.charCodeAt(0) + ';';
    });
}
htmlEncode("test's/test2'w"); // "test&#39;s/test2&#39;w"
其中,\/\\是允许字符的白名单


如果您想将HTML生成为字符串,这是可以的,但是如果您想生成新的DOM元素,从长远来看,“s”要好得多。

如果您不知道所有HTML实体的名称,您仍然可以对它们进行HTML编码

function htmlEncode(str) {
    return str.replace(/[^\da-z()\[\] .,\/\\]/g, function (m) {
        return '&#' + m.charCodeAt(0) + ';';
    });
}
htmlEncode("test's/test2'w"); // "test&#39;s/test2&#39;w"
其中,\/\\是允许字符的白名单


如果您想将HTML生成为字符串,这是可以的,但是如果您想生成新的DOM元素,从长远来看,“s”要好得多。

不要通过将字符串组合在一起来生成HTML,请使用DOM。不要使用JavaScript URI,使用事件处理程序

var desc = "test's/test2'w";
var link = document.createElement('a');
link.appendChild( document.createTextNode('TEST') );
link.href = "fallback.html";
link.addEventListener('click', function (evt) {
    getData(desc);
    evt.preventDefault();
});
document.body.appendChild(link);

不要通过将字符串拼凑在一起来生成HTML,请使用DOM。不要使用JavaScript URI,使用事件处理程序

var desc = "test's/test2'w";
var link = document.createElement('a');
link.appendChild( document.createTextNode('TEST') );
link.href = "fallback.html";
link.addEventListener('click', function (evt) {
    getData(desc);
    evt.preventDefault();
});
document.body.appendChild(link);

我假设Html在javascript字符串中?不,它是在href action上带有js函数调用的锚链接我假设Html在javascript字符串中?不,它是在href action上带有js函数调用的锚链接谢谢!终于有人反对在js中纠缠html了。谢谢!最后是一个反对在js中纠缠html的人。