1 javascript arrays jquery case-sensitive multidimensional-array
我想搜索数组中的值,但搜索应该忽略大写/小写字母.我怎么能做到这一点?
这是我的代码:
$.ajax({
type: "GET",
url: "ajax.php",
dataType: "json",
data: { pageType: pageType, input: request.term, dataString: 'getPageInfo' },
success: function(data)
{
var values = $.map(data, function(item) { return {id: item.id, label: item.label, value: item.value}; });
for (var i = 0; i < values.length; i++) {
if (values[i].label.split(',').indexOf(request.term) >= 0) {
var found = values[i];
}
}
if (!found) values.push({id: 0, label: request.term + ' hinzufügen', value: request.term});
response(values);
Run Code Online (Sandbox Code Playgroud)
它是关于提供创建新条目的选项,如果输入已匹配条目以防止用户创建重复条目,如您在最后一行中所见.request.term是用户输入的值,values是数组.
因此,例如,如果我正在搜索"berlin"或"BERLIN"或"bERLiN"并且我的数据库中的条目是"Berlin",那么它仍应将此项目标记为在数组中找到.
一种选择是事先强制大小写:
var iterm = request.term.toLowerCase();
// ...
if (values[i].label.toLowerCase().split(',').indexOf(iterm) >= 0) {
Run Code Online (Sandbox Code Playgroud)
或者你可以request.term变成一个不区分大小写的正则表达式,但这样做涉及转义其中可能在正则表达式中特殊的所有字符,这很痛苦.您必须通过大量的值来查看toLowerCase开销,以便让我想要了解这种复杂性.
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |