提问人:Nilanshu Vishesh 提问时间:6/20/2023 最后编辑:freedomn-mNilanshu Vishesh 更新时间:6/20/2023 访问量:92
如何在javascript中转义撇号
How to escape the apostrophe in javascript
问:
当我从带有撇号的下拉列表中选择一个名称时 示例: Brian O'Connar
我的 JS 代码将在撇号被删减后带来 Brian O 和其他角色。
我加载数据的原始JS代码 --
else if(newClaimCols[key]== "assigned_to_full_name_primary") {
var selectedText =$("#claim" + newClaimCols[key] + "filter").val()
//Brian O
if (selectedText!==null && selectedText!=="" ) {
var temp1 = $("#claim" + newClaimCols[key] + "filter").val();
for (var key in temp1) {
temp.push(temp1[key]);
}
}
}
在上面的例子中,.val() 只选择撇号之前的文本
第2种情况 我尝试了 .text() 请参考以下代码
else if (newClaimCols[key] == "assigned_to_full_name_primary") {
var selectedText = $("#claim" + newClaimCols[key] + "filter option:selected").text();//Brian O'Connar
if (selectedText!==null && selectedText!=="" ) {
var temp1 =$("#claim"+newClaimCols[key]+ "filter option:selected").text();
temp.push(temp1);
}
}
在这种情况下,我得到了 Brian O'Connar,但如果我在下拉列表中选择多个名字 Brian O'Connar 和 Nishinoya'O,它就像
示例: Brian O'ConnarNishinoya'O
不知道如何处理这个问题。
请让我知道当选择多个名称时,我如何才能完全加载带有撇号的名称或第二种情况 .text() 的解决方案。
答:
0赞
CaptainObvious
6/20/2023
#1
要正确处理撇号并保留完整名称,您可以使用 JavaScript 的函数对所选文本进行编码,然后再将其推送到数组中。这将确保撇号(和任何其他特殊字符)被正确转义。通过使用 对所选文本进行编码,您可以安全地将其作为参数传递或将其存储在数组中,而不会出现任何问题。当您以后需要使用该值时,可以使用 对其进行解码。我将其添加到代码中,希望这能解决您的问题。encodeURIComponent()
temp
encodeURIComponent()
decodeURIComponent()
else if (newClaimCols[key] == "assigned_to_full_name_primary") {
var selectedText = $("#claim" + newClaimCols[key] + "filter option:selected").text();
if (selectedText !== null && selectedText !== "") {
var temp1 = $("#claim" + newClaimCols[key] + "filter option:selected").text();
temp.push(temp1);
}
}
评论
0赞
Nilanshu Vishesh
6/20/2023
var temp1 =$(“#claim”+newClaimCols[key]+ “filter option:selected”).text();这一行已经选择了带有转义字符的名称,但是当选择多个名称时,例如-Brian O'Connar和Nishinoya'Shoyo,那么结果将是Brian O'ConnarNishinoya'O,这是我提到的第二种情况,你有什么想法,我可以用空格或任何其他字符获得多个名字。
0赞
CaptainObvious
6/20/2023
在这种情况下,您可以直接将 temp1 值推送到 temp 数组中,而无需进行任何修改,并在我的初始响应中更新了代码
0赞
Nilanshu Vishesh
6/20/2023
temp1=Brian O'ConnarNishinoya'O 有两个名字合并在一起,我该如何拆分它??我需要两个名字分开,分别为 Brian O'Connar Nishinoya'O
0赞
CaptainObvious
6/20/2023
您是否尝试过使用分隔符?split()
0赞
Nilanshu Vishesh
6/20/2023
#2
我清理了我的 HTML 选项标签 由此
optstring += "<option value='" + key +'='+ val + "'>" +val+ "</option>";
对此
optstring += '<option value="' + key +'='+ val + '">' +val+ "</option>";
现在我从 html 到 JS 的值是接受撇号
上一个:更新“突发新闻行情”中的数据
下一个:传单滑块 - 自定义外观
评论
.val()
<select multiple
.text()
<option>
.text()
option:selected
.map
.val()