我有一个简单的脚本:
onclick='sharemusic("Say It Ain't So", "Weezer");'
。由于“Ain't”中的撇号,它无法正常工作。如何在不影响代码功能的情况下转义撇号?谢谢!onclick='sharemusic("Say It Ain't So", "Weezer");'
。由于“Ain't”中的撇号,它无法正常工作。如何在不影响代码功能的情况下转义撇号?谢谢!onclick="sharemusic('Say It Ain’t So', 'Weezer');"
’
或 ’
(是的,它与右单引号分享其码点,但仍然是“正确”的撇号)。如果你一定要在JavaScript中转义,而不是使用HTML实体,你可以使用它的Unicode表示
"\u0027" // "'"
"Say It Ain\u0027t So" // "Say It Ain't So"
"'".charCodeAt(0) // 39
.toString(16) // "27"
// So pad 27 to 4 digits, then prepend \u
当使用HTML时,最好按照MrJammin回答中建议的使用HTML实体,因为这样可以避免出现问题,或者将其完全移出HTML。否则,您需要转义可能会导致问题的所有内容,例如将&
的所有实例替换为\u0026
,而不是简单地使用更易读的&
以及其他引号样式。
您需要使用HTML实体,例如:
onclick="sharemusic("Say It Ain't So", "Weezer");"
但是正如其他人所说,你可能不应该以这种方式绑定点击事件(将JS抽象成自己的文件并使用addEventHandler)
"
变成"
或'Say It Ain\'t So'
变成'Say It Ain\\'t So'
(甚至是'Say It Ain\\\\'t So'
,如果事情变得非常复杂)。onclick='sharemusic("Say It Ain't So", "Weezer");'
首先,按照标准要求使用双引号作为属性的符号。
其次,将JS字符串放在单引号中,并使用反斜杠转义额外的单引号。
onclick="sharemusic('Say It Ain\'t So', 'Weezer');"
<element onclick="shareMusic()" data-title="Say it Ain't So" data-artist="Weezer" />
- Ronniehtmlspecialchars
函数来为你更改实体吗?http://php.net/manual/zh/function.htmlspecialchars.php - Iron3eagleonclick="sharemusic('Say It Ain’t So', 'Weezer');"
将正常工作。;-) - JimmiTh