如何转义 JavaScript 中的单引号或双引号?
How to escape single or double quote in JavaScript?
我正在尝试用 \' 替换引号 (') 以转义字符串中的转义引号或双引号
<ul id="list">
</ul>
<button id="sethrefbtn" onclick="setlink();">Set Link</button>
function setlink(){
var data = {
playerID : 102458,
playername: "Real Madrid's cristiano Ronalado"
}
listring= "<li><a href='SearchServlet?q=" + data.playername.replace(/'/g, "\'"); + "&playerid=" + data.playerID + "&page=1#pg0'>"+ data.playername +"</a></li>";
$("#list").append(listring);
}
这是fiddle:fiddle
所需的输出应该是:
<a href="SearchServlet?q=Real Madrid's cristiano ronalado&playerid=102458&page=1#pg0">Real Madrid's cristiano Ronalado</a>
你的问题是由于它在 HTML 属性中引起的(所以你需要将它转换为 HTML 字符引用而不是转义它)。您应该通过使用 DOM 而不是字符串混搭来构建您的 HTML.
来处理这个问题
但是,在这种特殊情况下,您将它放在 URL 中,因此您应该先将其转义 URL 秒。
您可以使用 encodeURIComponent
来做到这一点,但由于您正在构建一个完整的查询字符串并使用 jQuery,您可以改用 param
。
function setlink() {
var data = {
playerid: 102458,
q: "Real Madrid's cristiano Ronalado",
page: 1
}
var url = "SearchServlet?" + $.param(data);
var li = $("<li />").append(
$("<a />").text(data.q).attr('href', url)
);
$("#list").append(li);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list">
</ul>
<button id="sethrefbtn" onclick="setlink();">Set Link</button>
listring= "<li><a href='SearchServlet?q=" + data.playername.replace(/'/g, "\'") + "&playerid=" + data.playerID + "&page=1#pg0'>"+ data.playername +"</a></li>";
只需在代码中替换上面的语句即可。
您的代码中语句中间有一个分号。
我正在尝试用 \' 替换引号 (') 以转义字符串中的转义引号或双引号
<ul id="list">
</ul>
<button id="sethrefbtn" onclick="setlink();">Set Link</button>
function setlink(){
var data = {
playerID : 102458,
playername: "Real Madrid's cristiano Ronalado"
}
listring= "<li><a href='SearchServlet?q=" + data.playername.replace(/'/g, "\'"); + "&playerid=" + data.playerID + "&page=1#pg0'>"+ data.playername +"</a></li>";
$("#list").append(listring);
}
这是fiddle:fiddle
所需的输出应该是:
<a href="SearchServlet?q=Real Madrid's cristiano ronalado&playerid=102458&page=1#pg0">Real Madrid's cristiano Ronalado</a>
你的问题是由于它在 HTML 属性中引起的(所以你需要将它转换为 HTML 字符引用而不是转义它)。您应该通过使用 DOM 而不是字符串混搭来构建您的 HTML.
来处理这个问题但是,在这种特殊情况下,您将它放在 URL 中,因此您应该先将其转义 URL 秒。
您可以使用 encodeURIComponent
来做到这一点,但由于您正在构建一个完整的查询字符串并使用 jQuery,您可以改用 param
。
function setlink() {
var data = {
playerid: 102458,
q: "Real Madrid's cristiano Ronalado",
page: 1
}
var url = "SearchServlet?" + $.param(data);
var li = $("<li />").append(
$("<a />").text(data.q).attr('href', url)
);
$("#list").append(li);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="list">
</ul>
<button id="sethrefbtn" onclick="setlink();">Set Link</button>
listring= "<li><a href='SearchServlet?q=" + data.playername.replace(/'/g, "\'") + "&playerid=" + data.playerID + "&page=1#pg0'>"+ data.playername +"</a></li>";
只需在代码中替换上面的语句即可。 您的代码中语句中间有一个分号。