カスタム select2 (バージョン 4.0) マッチャーを作成して、検索の実行時に無視されるようにdots
したいと考えています。whitespaces
例えば。オプションの 1 つが の場合、検索ボックスに入力するだけでDr. R. N. Pandey
検索できるはずです。Dr. R. N. Pandey
rnp
カスタム select2 (バージョン 4.0) マッチャーを作成して、検索の実行時に無視されるようにdots
したいと考えています。whitespaces
例えば。オプションの 1 つが の場合、検索ボックスに入力するだけでDr. R. N. Pandey
検索できるはずです。Dr. R. N. Pandey
rnp
すでに提供されている回答に触発されました:
function ignoreDotAndWhitespace(params, data) {
params.term = params.term || '';
term = params.term.toUpperCase();
text = data.text.toUpperCase().replace(/\./g, '').replace(/\s+/g, '');
if (text.indexOf(term) > -1 ) {
return data;
}
return false;
}
$('.select2').select2({
matcher: function(params, data) {
return ignoreDotAndWhitespace(params, data);
}
});
これを試してください:
HTML:
<select class='select2'>
<option>Select</option>
<optgroup label="Vegetables">
<option>A. Celery</option>
<option>Green R.P Pepper</option>
<option>Kale</option>
</optgroup>
<optgroup label="Fruits">
<option>Apple</option>
<option>Orange</option>
<option>Banana</option>
</optgroup>
<optgroup label="Nuts" disabled>
<option>Almond</option>
<option>Walnut</option>
<option>Pine</option>
</optgroup>
</select>
JS:
(function() {
function matcher(term, text) {
term = term.toUpperCase();
text = text.toUpperCase().replace(/\./g, '').replace(/\s+/g, '');
if (text.indexOf(term) > -1 ) {
return true;
}
return false;
}
$(".select2").select2({
matcher: matcher
});
})();
デモから見てください(<4.0):
https://jsfiddle.net/xfw4tmbx/22/
2 バージョン 4.0 を選択