JSON Jquery大小写不敏感匹配
JSON Jquery Case Insensitive Matching
我有以下JSON和Jquery代码:
JSON
{
"employees":[
{
"name": "Sandy"
},
{
"name": "Megan"
},
{
"name": "Pat"
},
{
"name": "Susan"
}
]
}
JQuery
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="js/jquery-1.6.4.js"></script>
<script type="text/javascript">
$(document).ready(function(){
jQuery.ajax({
type: "GET",
url: "myJson.json",
dataType: "json",
async: "true",
contentType: "application/x-javascript; charset=utf-8",
cache: "false",
success: function(response){
$("input#myInput").live("keyup", function(e){
var val = $("input#myInput").val();
var len = $("input#myInput").val().length;
for (var x = 0; x < response.employees.length; x++) {
var empName = response.employees[x].name;
var valChar = val.substring(0, len);
var nameChar = empName.substring(0, len);
if (nameChar.search(valChar) != -1) {
$("ul#myList").append("<li>" + empName + "</li>");
}
}
});
}
})
})
</script>
</head>
<body>
<input type="text" width="25" id="myInput">
<ul id="myList"></ul>
</body>
</html>
我想做什么
当我在输入字段中键入一个字符(如M/p/S)时,它应该在JSON文件中循环并返回匹配的结果。所以,
- M将归还Megan
- S将归还Sandy和Susan
- P将归还Pat
问题
目前,我的代码正在运行。但只有当我输入大写字符时。如果我输入m/p/s,它不会返回任何内容。
我如何使这个大小写不敏感,以便它同时适用于
- M/P/S
- m/p/s
编辑:代码中的一些改进
- val和
val.substring(0,len)
是相同的,所以您不需要执行子字符串,因为len是根据val计算的 -
您不需要进行搜索,因为您使用子字符串并获得值的确切长度。因此,您可以进行简单的
==
比较for (var x = 0; x < resp.employees.length; x++) { var empName = resp.employees[x].name; var valChar = val.toLowerCase(); var nameChar = empName.substring(0, len).toLowerCase(); if (nameChar === valChar) { $("ul#myList").append("<li>" + empName + "</li>"); } }
更新演示
更改你的for循环如下,
for (var x = 0; x < resp.employees.length; x++) {
var empName = resp.employees[x].name;
var valChar = val.substring(0, len).toLowerCase();
var nameChar = empName.substring(0, len).toLowerCase();
if (nameChar.search(valChar) != -1) {
$("ul#myList").append("<li>" + empName + "</li>");
}
}
DEMO
查看.toUpperCase()即,if(val.toUpperCase()==search.toUpper Case())
相关文章:
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 如何使用jQuery进行不区分大小写的搜索
- JavaScript/jQuery大小写无关RegEx替换
- jQuery:请求JSON信息时如何切换大小写
- Jquery Selection选项不适用于开关和大小写
- 不区分大小写的自动完成搜索(使用java、javascript、jquery)
- 如何将不区分大小写添加到照片库搜索框jquery
- 不区分大小写的 jQuery 属性选择器
- 通过jquery搜索列表(不区分大小写)
- 如何在不需要匹配大小写的情况下匹配 jQuery 中的元素
- 如何为jQuery.append($(<option/>",{..})的每个三元大小写添加超过1个
- 如何使用JQuery'在这种情况下,s.filter()选择包含不区分大小写的字符串的元素
- JSON Jquery大小写不敏感匹配
- 统计jquery中一个区分大小写的单词在一个段落中出现的次数
- 简单的大小写不敏感的搜索框的一个表与jQuery
- 如何在jquery中使用切换大小写(数字范围)
- 如何使用jquery突出显示行,而不区分大小写
- 忽略Jquery AJAX调用URL的大小写敏感性
- jQuery:不区分大小写:包含
- 用jQuery搜索表行,不区分大小写