我正在尝试通过添加一些值来创建动态 anchor 标记。但如果有特殊字符,代码就会被破坏:
'<a href="#" onclick="openCI(\''+var1+'\',\''+ var2 +'\',\''+ var3 +'\',\''+ var4 +'\')">' + LINK_URL + '</a>'
在上述情况下,当 LINK_URL 值包含特殊字符时,代码会中断。有什么办法可以解决这个问题吗?
我在 LINK_URL 中尝试了以下值:!@#$%^&*()-=+_';":.,<>/?
如果我使用escape()
javascript中的函数,显示的值与实际值不匹配:%21@%23%24%25%5E%26*%28%29-%3D+_%27%3B%3A.%2C%3C%3E/%3F
如何解析这个值并按原样显示?
最佳答案
您只需担心<>&"
人物。您可以将这些字符替换为 html 等效字符。
LINK_URL.replace(/&/g, "&").replace(/>/g, ">").replace(/</g, "<").replace(/"/g, """);
或者你可以用更优雅的方式来做到这一点:
String.prototype.htmlEscape = function() {
return this.replace(/&/g, "&").replace(/>/g, ">").replace(/</g, "<").replace(/"/g, """);
}
LINK_URL.htmlEscape();
这是一个working example
关于javascript - 如何绕过动态 anchor 标记中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28765221/