我有这个简单的脚本:onclick='sharemusic("Say It Ain't So", "Weezer");'
由于“Ain't”上的撇号,它无法正常工作。如何在不影响代码功能的情况下转义撇号?
非常感谢!
最佳答案
我不愿意添加这个答案,因为所有其他答案都很好并且对大多数人更有用 - 通过回答基本问题:“How to escape in Javascript inside HTML attributes” - 这不会回答那个问题。
有些人会考虑以下解决方法,其他人会将其视为唯一合适的解决方案™。
摆脱打字机撇号 - 尽管打字机在所有复古宏伟方面都很酷和时尚,但我们可以做得更好,甚至更老:回到正确的,一刀切的打印撇号(AKA “花撇号”)。
作为副作用,这也将解决转义问题:
onclick="sharemusic('Say It Ain’t So', 'Weezer');"
打字员会很高兴,浏览器也会很高兴。好吧,只要您按照应有的方式使用 UTF-8 或其他一些包含排版撇号的编码。 Unicode:U+2019,实体:’
或 ’
(是的,它与正确的单引号共享其代码点 - 但它仍然是“正确的”撇号)。
如评论中所述,有各种库和 CMS/博客插件可帮助处理转换为正确的排版符号(和其他排版细节)。参见 wp-Typography , smartypants (我认为,这是第一个类似这样的实现 - 由 Markdown 的原作者 John Gruber 开发),typogrify等
我不确定有什么更新的替代方案(如果有的话),因为很久以前我就制作了自己的(非公开的,我必须承认)C# 实现。
关于javascript - 转义撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17661145/