필자는 json을 필터링하고 싶습니다. 그리고 와일드 카드로 "like"와 같은 간단한 mysql 연산자를 "%"하지만 몇 가지 "트릭"으로 시뮬레이트하려고합니다. 내가 MySQL과 PHP를 사용하는 경우json을 mysql "like"연산자와 비슷하게 필터링하기
var items =
[
{id: 1,name: "Breaking Bad"},
{id: 2,name : "Bates Motel"}
]
, 내가 '%'를 사용하여 사용자 입력의 모든 공백을 대체 :
우리는 일부 항목이있다. 사용자 유형 "B 바는"쿼리처럼 보이는 때, :
$this->db->query("SELECT * FROM items WHERE name LIKE '%b%ba% ");
사용자 항목을 가져옵니다 "브레이킹 배드을". 나는 javascript와 json으로 같은 동작을 시뮬레이트하고 싶다. 그 방법은 사용자 유형 "B 바"사용자가 단어 "베이츠"렸기 때문에 '브레이킹 배드'와 '베이츠 모텔을 "얻을 때이 하나의 끔찍한 버그를 가지고
this.search = function() {
var query = $.trim($('.player-search').val())
query = query.toUpperCase()
$.grep(that.items, function(v) {
if(that.filter(v.name,query) === true) {
$('.player-serial[data-id="'+v.id+'"]').fadeIn(200)
} else {
$('.player-serial[data-id="'+v.id+'"]').fadeOut(200)
}
})
}
this.filter = function(word,query) {
var tmp = query.toUpperCase().split(" "),
n = tmp.length,
i = 0
for(var k in tmp) {
word.toUpperCase().indexOf(tmp[k]) >= 0 && ++i
}
return (i == n) ? true : false
}
:
내 가장 가까운 구현처럼 보인다 "b"와 "ba".
다시 작성하기 전에 원하는대로 json을 필터링하는 것이 더 좋고/현명한 방법인지 묻고 싶습니다. 나는 바퀴를 다시 발명하려고 노력하고 있을지도 모른다.
를 사용할 수 있습니까? 다음과 같은 것 : /.*b.*ba.*/i – Deep