首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >转义JavaScript中的单引号

转义JavaScript中的单引号
EN

Stack Overflow用户
提问于 2012-11-26 04:16:10
回答 2查看 9.7K关注 0票数 5

我写了一个函数如下:

function makeTitleEditable($titleContainer){
        var defaultValue = $titleContainer.text().replace("'","\\'");
        $titleContainer.replaceWith("<input id='poll_title' name='poll[title]' value='" + defaultValue +"' type='text'>");
      }

现在的问题是,我仍然无法摆脱单引号。例如,如果

$titleContainer.text() => I'm lucky

console.log("<input id='poll_title' name='poll[title]' value='" + defaultValue +"' type='text'>") => <input id='poll_title' name='poll[title]' value='I\'m lucky!' type='text'> 

这将生成值为"I“而不是”我很幸运“的DOM。我该如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-26 04:19:58

使用jQuery设置该值;

function makeTitleEditable($titleContainer){
    $titleContainer.replaceWith(
       $("<input id='poll_title' name='poll[title]' type='text'>").val($titleContainer.text())
    );
}
票数 2
EN

Stack Overflow用户

发布于 2016-04-06 03:58:05

当然,快速的解决方法很简单,就是用"\'"替换"'",尽管在复制和粘贴类型的基础上这确实是不可伸缩的。

最好是通过正则表达式,例如:

var badString = "Visit John's Site!!!";
var goodString = badString.replace(/'/g, "\'");

但请记住,它们会在服务器端甚至在后续的函数调用中再次显示为简单的撇号,所以如果您计划在不同的函数之间传递它们,另一种解决方案可能更可取:

var badString = "Visit John's Site!!!";
var goodString = badString.replace(/'/g, "\x27");

这是撇号的标准Unicode字符。这不一定会避免任何后续的函数调用出现问题,但这意味着字符串将不需要解码。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13555056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档