【问题标题】:How to search ignoring spaces between words?如何搜索忽略单词之间的空格?
【发布时间】:2014-06-06 16:02:47
【问题描述】:

我想使用我的搜索模块搜索名称,忽略空格。

例如:如果我想搜索像“A B Zilva”这样的名字

即使我键入“AB Zilva”之类的名称,我也想在下拉列表中显示结果。

目前没有空间的搜索不起作用

   $db = JFactory::getDbo();
$searchp=$_GET["term"];
$searchp = str_replace(' ','%%', trim($searchp));
//$searchp= preg_split('/ /', $searchp);
$query = $db -> getQuery(true);

 $query="SELECT * FROM content where title like '%".$searchp."%'AND categories_id=82 order by title ASC ";
$db -> setQuery($query);
// Load the results as a list of associated arrays.
$results = $db -> loadAssocList();
$json=array();
foreach ($results as $json_result) {
    $json[] = array('value' => $json_result["title"], 'label' => $json_result["title"]);
}

请指教。

更新:

jQuery.extend( jQuery.ui.autocomplete.prototype, {
              _renderItem: function( ul, item ) {
                  var term = this.element.val(),
                      regex = new RegExp( '(' + term + ')', 'gi' );
                  html = item.label.replace( regex , "<b>$&</b>" );
                  return jQuery( "<li></li>" )
                      .data( "item.autocomplete", item )
                      .append( jQuery("<a></a>").html(html) )
                      .appendTo( ul );
              }
          });

【问题讨论】:

    标签: mysql json search autocomplete


    【解决方案1】:

    您的代码的问题是,当您将空格替换为 %% 时,您会得到如下搜索:

    WHERE title like '%AB%%Zilva%'
    

    但当标题为 A B Zilva 时,这将不匹配。您需要从搜索字符串和数据库中的列中删除空格。这样做:

    $searchp = str_replace(' ', '', $searchp);
    

    然后将 SQL 更改为:

    WHERE REPLACE(title, ' ', '') LIKE '%$searchp%'
    

    对于 Javascript 突出显示,我认为您需要这样做:

    var term = this.element.val().replace(/ /g, '').replace(/.(?=.)/g, '$& *'),
    

    这将创建一个正则表达式,允许在搜索字符串中的任何字符之间使用空格。

    【讨论】:

    • 感谢@Barmar,它有效,你能检查我问题的底部,我在哪里放置了一个 jquery 代码。我用来突出显示哪个类型的单词。但是在我按照您所说的进行更改之后,现在那个高亮部分不起作用。是代码也影响到那个。请指教
    猜你喜欢
    • 2018-07-24
    • 1970-01-01
    • 2018-04-11
    • 2022-03-10
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    相关资源
    最近更新 更多