gpt4 book ai didi

javascript - 如何在 jquery textcomplete 中仅使用数组小写单词返回输入寄存器?

转载 作者:行者123 更新时间:2023-11-28 03:50:19 25 4
gpt4 key购买 nike

我使用jquery textcomplete在我的项目中。是否可以仅使用小写字数组返回输入寄存器。我在谷歌翻译中查看了近似函数,并且输入结果在输入时也没有返回。在那里,使用任何单词输入寄存器执行搜索,但仅以小写形式返回。如何做到这一点,以便当您输入诸如 "Stackoveflow" 之类的单词时,单词数组中的单词 ['stackoverflow'] 返回输入寄存器中的结果。

代码

$('.form-control').textcomplete([{
words: ['stackoverflow', 'ҳайрат', 'english', 'маҳорат'],
match: /(^|\S*)([^\u0000-\u007f]{2,}|\w{2,})$/,
search: function(term, callback) {
this.words = this.words.map( s => s.toLocaleLowerCase() );
callback($.map(this.words, function(word) {
return word.indexOf(term.toLocaleLowerCase()) === 0 ? word : null;
}));
},
index: 2,
replace: function(word) {
return word + ' ';
}
}]);

示例

当在数组中输入单词时,如何返回相同的结果,单词将是小写的。例如:

输入:Stackoverflow、STACKOVERFLOW、вайрат、вАЙРАТ

输出:Stackoverflow、STACKOVERFLOW、вайрат、вАЙРАТ

返回小写输入单词的工作代码

$('.form-control').textcomplete([{
words: ['stackoverflow', 'ҳайрат', 'english', 'маҳорат'],
match: /(^|\S*)([^\u0000-\u007f]{2,}|\w{2,})$/,
search: function(term, callback) {
this.words = this.words.map( s => s.toLocaleLowerCase() );
callback($.map(this.words, function(word) {
return word.indexOf(term.toLocaleLowerCase()) === 0 ? word : null;
}));
},
index: 2,
replace: function(word) {
return word + ' ';
}
}]);

此代码将在任何情况下搜索键入的单词,但从包含单词的数组中以小写形式返回。例如,如果我们输入“English”,最终结果将是“english”。所需结果必须采用输入大小写“English”

最佳答案

如果我理解问题,这可以完成工作:

$('#textcomplete').textcomplete([{
words: ['stackoverflow', 'ҳайрат', 'english', 'маҳорат'],
match: /(^|\S*)([^\u0000-\u007f]{2,}|\w{2,})$/,
search: function(term, callback) {
callback($.map(this.words, function(word) {
if (word.indexOf(term.toLocaleLowerCase()) !== 0)
return null;

if (term[term.length-1] === term[term.length-1].toLocaleUpperCase())
return word.toLocaleUpperCase(); // last char is upper = uppercase
if (term[0] === term[0].toLocaleUpperCase())
return word.charAt(0).toLocaleUpperCase() + word.slice(1); // first char is upper = capitalized

return word; // default; is lowercase
}));
},
index: 2,
replace: function(word) {
return word + ' ';
}
}]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.textcomplete/1.8.4/jquery.textcomplete.min.js"></script>

<textarea id="textcomplete"></textarea>

关于javascript - 如何在 jquery textcomplete 中仅使用数组小写单词返回输入寄存器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48048935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com