使用jquery转义双引号

时间:2014-03-31 14:12:53

标签: jquery ajax regex

我有scanerio用户使用搜索框搜索文本。我的搜索条件每当用户输入单词时我们必须首先搜索所有匹配条件然后是下一个匹配条件和最后一个匹配条件。例如,如果用户搜索"设备事务失败"。然后我们必须首先显示三个单词匹配标准,然后在最后一个单独显示它们中的任意两个。我有服务器端编程。但是这里有一个场景,当用户输入双引号然后它必须被用于单个单词然后搜索服务器端。我写了下面显示的ajax调用

$('.search').bind("keyup change",function() {
              var category=$("#category").val();
                var search=$("#filter").val();
                 var array = search.match(/"[^"]*"|[^\s"]+/g);
               console.log("hi"+array.length);
               for(var i=0;i<array .length;i++)
               {
               array[i]=JSON.stringify(array [i].replace(/['"]+/g, ''));
                           }

               console.log(array);
               $.ajax({
      url: '/portalmanager/search.ajax',
      type: 'POST',
      data: {searchText:array.join(","),category:category},
      cache: false,
      dataType:'text',
      success: function(data)
      {
       $("#xyz").html(data);
      }
     });
 });

但是当我在斜杠中发送双引号时javascript对象没有像我预期的那样正确发送。我试图转义引号并用斜杠引号替换引号。所有这些都失败了,因为如果我输入的话,它会将字符串作为多个单词发送dobule也引用了。 当我使用JSON.stringify它正在按预期发送。我可以使用JSON.stringifyon个别数组元素吗?如果没有,任何人都可以建议我更好的方法。

假设用户是否在搜索框中输入&#34;什么是bi&#34; opc然后应该发送为  &#34; \&#34;什么是bi \&#34; &#34; ooc到服务器端。

0 个答案:

没有答案