使用 bootstrap-vue table 过滤器功能从 vue 过滤器中排除口音
Excluding accents from the vue filter, using bootstrap-vue table filter feature
我正在使用 Bootrap-vue Table and filtering results,我需要帮助来插入正则表达式过滤器以排除带有重音符号的 words/letters。
这是正则表达式片段:
string.replace('/[áàãâä]/ui', 'a');
string.replace('/[éèêë]/ui', 'e');
string.replace('/[íìîï]/ui', 'i');
string.replace('/[óòõôö]/ui', 'o');
string.replace('/[úùûü]/ui', 'u');
string.replace('/[ç]/ui', 'c');
让用户键入的输入:
<b-form-input
id="filter-input"
v-model="filter"
type="search"
placeholder="Pesquise por Zona, WhatsApp ou E-mail"
></b-form-input
Table:
<b-table :items="items"
:fields="fields"
:filter="filter"
hover
striped>
<template #cell(whatsapp)="data">
<span v-html="data.value"></span>
</template>
<template #cell(email)="data">
<span v-html="data.value"></span>
</template>
</b-table>
最后,vue 过滤行:
filter: null,
所以我的问题是:如何将正则表达式过滤器放入 bootstrap-vue table 过滤器中,这可能吗?
您可以使用计算 属性 从 filter
属性 创建正则表达式,用可能的字母重音符号替换未修饰的字母:
export default {
computed: {
computedFilter() {
const pattern = this.filter
.replace(/a/g, '[aáàãâä]')
.replace(/e/g, '[eéèêë]')
.replace(/i/g, '[iíìîï]')
.replace(/o/g, '[oóòõôö]')
.replace(/u/g, '[uúùûü]')
.replace(/c/g, '[cç]')
return new RegExp(pattern, 'ui')
}
}
}
然后在模板中使用计算属性:
<b-table :filter="computedFilter">
我正在使用 Bootrap-vue Table and filtering results,我需要帮助来插入正则表达式过滤器以排除带有重音符号的 words/letters。
这是正则表达式片段:
string.replace('/[áàãâä]/ui', 'a');
string.replace('/[éèêë]/ui', 'e');
string.replace('/[íìîï]/ui', 'i');
string.replace('/[óòõôö]/ui', 'o');
string.replace('/[úùûü]/ui', 'u');
string.replace('/[ç]/ui', 'c');
让用户键入的输入:
<b-form-input
id="filter-input"
v-model="filter"
type="search"
placeholder="Pesquise por Zona, WhatsApp ou E-mail"
></b-form-input
Table:
<b-table :items="items"
:fields="fields"
:filter="filter"
hover
striped>
<template #cell(whatsapp)="data">
<span v-html="data.value"></span>
</template>
<template #cell(email)="data">
<span v-html="data.value"></span>
</template>
</b-table>
最后,vue 过滤行:
filter: null,
所以我的问题是:如何将正则表达式过滤器放入 bootstrap-vue table 过滤器中,这可能吗?
您可以使用计算 属性 从 filter
属性 创建正则表达式,用可能的字母重音符号替换未修饰的字母:
export default {
computed: {
computedFilter() {
const pattern = this.filter
.replace(/a/g, '[aáàãâä]')
.replace(/e/g, '[eéèêë]')
.replace(/i/g, '[iíìîï]')
.replace(/o/g, '[oóòõôö]')
.replace(/u/g, '[uúùûü]')
.replace(/c/g, '[cç]')
return new RegExp(pattern, 'ui')
}
}
}
然后在模板中使用计算属性:
<b-table :filter="computedFilter">