我在下面使用此正则表达式与Textcomplete一起使用,检查是否有人将#
或@
与参数一起写入
正则表达式:
/\B#(\w+)$/
我从数据库中加载了一些名称,您可以使用#
或@
进行搜索。让我们说在数据库中它包含Stackoverflow。
如果我写#Stackoverflow,那我就写了一封很大的S字母。 但如果我写#stackoverflow它不会起作用,因为小写字母。
我的问题是如何更改正则表达式以便忽略小字母或大字母?
更新了脚本
$('textarea').textcomplete([
{ // html
mentions: Companies,
match: /\B#(\w+)\i$/,
search: function (term, callback) {
callback($.map(this.mentions, function (mention) {
return mention.indexOf(term) === 0 ? mention : null;
}));
},
template: function (value) {
return '<img src="/emoji/' + value + '.png"></img>' + value;
},
index: 1,
replace: function (mention) {
return '#' + mention + ' ';
}
}
],
{ appendTo: 'body' }).overlay([
{
match: /\B#\w+/g,
css: {
'background-color': '#d8dfea',
}
}
])
为了告诉你它不起作用,我在codePen创建了它。
答案 0 :(得分:2)
答案 1 :(得分:1)
我最后将回调修改为
return mention.toLowerCase().indexOf(term.toLowerCase()) === 0 ? mention : null;
现在,它有效: