正则表达式逃脱双问号

时间:2014-09-22 19:14:45

标签: javascript jquery regex escaping

我有一个社交网站,每件事情都运转良好,我唯一的问题是每当我在评论或评论栏中输入双重问号时,它就会显示奇怪的文字。

==========

如果我进入"你好?" 它打印出来像这样" 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
                        });

                    }
                }
            });

1 个答案:

答案 0 :(得分:0)

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

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