javascript - 如何绕过动态 anchor 标记中的特殊字符

标签 javascript jquery html

我正在尝试通过添加一些值来创建动态 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, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/"/g, "&quot;");

或者你可以用更优雅的方式来做到这一点:

String.prototype.htmlEscape = function() {
   return this.replace(/&/g, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/"/g, "&quot;");
}

LINK_URL.htmlEscape();

这是一个working example

关于javascript - 如何绕过动态 anchor 标记中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28765221/

相关文章:

javascript - 当它在屏幕上可见时在 html 元素上添加类

javascript - 使用 ajax post 响应时出现错误 block

javascript - JQuery 的scrollTo 元素只工作一次

html - 如何在 Aframe 中的平面上加载 gif(具有透明度)(故障)?

javascript - 如何在左侧创建导航栏,在右侧创建容器?

javascript - async await 和 promise.all 错误处理

html - 响应超大屏幕图像

javascript - 页面未找到错误,甚至路由都给出了 angularJs

javascript - 弹出表单成功消息

javascript - 为什么 JavaScript 中的 splice 函数不能正常工作?