【问题标题】:regex escape double question mark正则表达式转义双问号
【发布时间】:2014-09-22 19:14:44
【问题描述】:

我有一个社交网站,一切正常,我唯一的问题是每当我在评论或评论字段中输入双问号时,它会显示奇怪的文字。

===========

如果我输入“你好??” 它打印出来像这样“hellojQuery110205576835575724747_1411410901236”, 我想知道如何转义特殊字符,在我的情况下是双问号。 没有正则表达式有没有更好的方法来做到这一点。 提前致谢。 这是我的代码。

$(document).undelegate('.comment', 'keypress').delegate('.comment', 'keypress', function(e) {

                if ($.trim($(this).val()) !== '') {
                    if (e.which === 10 || e.which === 13) {
                        var comment = $(this).val();
                        var id = $(this).closest('.review_list').attr('id');
                        $.ajax({
                            type: 'POST',
                            url: '../controller/pageController.php',
                            data: 'review_id=' + id + '&comment=' + comment + '&luser_id=' + luser_id,
                            dataType:'json',
                            cache: false,
                            success: function(id) {
                                if($.trim(id)=='NO'){
                                 window.location='profile.php'; 
                                                     }
                                id = $.trim(id.id);
                                var c = "<li id='" + id + "'><div id='c_thumb'>"+(thumb != null ? '<img src="profile_images/' + thumb + '"/>' : '')+"</div><div id='commenter'><a href='userprofile.php?id="+luser_id+"'>" + name + "</a></div><div id='time'> 0 second ago</div><p>" + comment + "</p><a id='c_remove' href=''>remove</a></li>";

                                $('#comment_box li:last-child').before(c);
                                document.getElementById("post_comment").reset();
                            }//end of success
                        });

                    }
                }
            });

【问题讨论】:

    标签: javascript jquery regex escaping


    【解决方案1】:

    您需要正确编码 URL 参数。一种方法是在每个参数上调用 encodeURIComponent(),但由于您使用的是 jQuery,我建议让它为您进行编码,方法是提供一个对象作为 data: 选项:

    data: { review_id: id,
            comment: comment,
            luser_id: luser_id
          },
    

    【讨论】:

    • 对不起...我已经在使用 ..encodeURI 进行评论...就像这样 ..var comment = encodeURI($(this).val());
    • 你在哪里看到多余的字符?在成功函数显示的段落中?
    • 未调用成功函数..当我输入双问号时... cmets 中显示额外字符...请帮助
    • 那么它在哪里打印出你在问题中显示的内容?
    • 当我刷新页面时,cmets 会显示额外的字符......jQuery110205576835575724747_1411410901236
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2013-10-01
    • 2010-10-27
    相关资源
    最近更新 更多