JavaScript的单引号转义字符格式

时间:2016-07-18 20:15:19

标签: c# escaping apostrophe

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

   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知道所有内容都应该只是一个字符串。对字符串格式化和转义字符有一点帮助吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果您只想在JavaScript中转义撇号,可以尝试用\’替换它们:

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

它不会影响您使用此字符串的进一步工作,因此如果您将其写入控制台,它将输出一个没有反斜杠的结果:

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