JavaScript 的单引号转义字符格式

Single Quote Escape Character Formatting for JavaScript

我有一个我觉得很容易回答的问题:我有代码

   function ApplicantNameMatchedInitialPayment() {
        var applicantName = '<%= ViewData["ApplicantName"] %>';
        var fullName = applicantName.split(' '); 
        if (fullName.length == 2)
        {
            var firstName = fullName[0].toLowerCase();
            var lastName = fullName[1].toLowerCase();
            var nameOnCard = $("#name-on-card").val().toLowerCase();
            if(nameOnCard.includes(firstName) & (nameOnCard.includes(lastName)))
            {
                return true;
            }
        }
        return false;
    }

我正在尝试处理我的用户输入带有撇号的姓名的情况。在实时执行期间填充 ViewData 对象时,客户的名称将显示在 'applicantName' 变量中。问题是,如果我输入像 "De'Leon" 这样的名称,由于不正确的转义序列,控制台会抛出一个 JS 错误。并且字符串将不会被正确读取。我想获取从我的 C# Viewdata 对象传入的任何字符串并动态处理撇号,这样就不会引发任何错误,这样我的 javascript 就可以理解一切都应该只是一个字符串。对字符串格式和转义字符有一点帮助吗?

如果您使用的是 .NET 版本 4 或更高版本,则可以使用 HttpUtility.JavaScriptStringEncode

如果您只想转义 JavaScript 中的撇号,您可以尝试将它们简单地替换为 \’:

s = s.replace("'", "\'");

它不会影响你进一步使用这个字符串,所以如果你将它写入控制台,它会输出一个没有反斜杠的结果:

var s = "De'Leon";
s = s.replace("'", "\'");
console.log(s); // > De'Leon