我目前正在研究搜索引擎(下面提供的砌体+同位素+自定义代码)。我希望它只显示用户输入的整个单词或数字的完全匹配,除了按div类等搜索(这一切和其他一切正常)。
现状: 当用户输入“1”时,段落包含例如“12”也显示
期望的结果: 当用户输入“1”时,仅显示包含“1”的结果 - 不包含包含221,111,12等数字的段落。
我非常感谢提供工作代码。
var qsRegex;
var buttonFilter;
var $grid = $('.grid').isotope({
itemSelector: '.element-item',
layoutMode: 'fitRows',
filter: function() {
var $this = $(this);
var searchResult = qsRegex ? $this.text().match( qsRegex ) : true;
var buttonResult = buttonFilter ? $this.is( buttonFilter ) : true;
return searchResult && buttonResult;
}
});
$('#filters').on( 'click', 'button', function() {
buttonFilter = $( this ).attr('data-filter');
$grid.isotope();
});
var $quicksearch = $('#quicksearch').keyup( debounce( function() {
qsRegex = new RegExp( $quicksearch.val(), 'gi' );
$grid.isotope();
}) );
$('.button-group').each( function( i, buttonGroup ) {
var $buttonGroup = $( buttonGroup );
$buttonGroup.on( 'click', 'button', function() {
$buttonGroup.find('.is-checked').removeClass('is-checked');
$( this ).addClass('is-checked');
});
});
function debounce( fn, threshold ) {
var timeout;
return function debounced() {
if ( timeout ) {
clearTimeout( timeout );
}
function delayed() {
fn();
timeout = null;
}
setTimeout( delayed, threshold || 100 );
};
}
答案 0 :(得分:0)
听起来你只需要调整你的正则表达式,以便输入被空格包围......这是一个不错的网站,可以尝试正则表达式,虽然它是专注于ruby的,它有一个正则表达式备忘单{{3 }}
答案 1 :(得分:0)
好的,我自己弄清楚了:
qsRegex = new RegExp( "\\b" + $quicksearch.val() + "\\b", 'gi' );