JSON, 배열 및 문자열 작업의 기초를 가르치려고하므로 간단한 Regex 검색 및 강조 표시를 시도하고 있습니다. 내 문제는 Queryterm을 포함하는 문자열로 쿼리 용어를 바꾸려고 할 때 생성 된 새 배열로 반환하지 않는 것입니다. 내가 '값을'돌아 왔을 때 왜하지 포함되지이다, 대체 텍스트javascript .replace 및 jQuery .map
var array = [{
"classname": "item",
"content": "content1"},
{
"classname": "item",
"content": "content2"},
{
"classname": "item",
"content": "content1"},
{
"classname": "im gonna say its item",
"content": "content1"},
{
"classname": "blam",
"content": "content1"},
{
"classname": "item",
"content": "content1"},
{
"classname": "item3",
"content": "content1"}];
내 질문을한다 :
function jqueryMap() {
var searchterm = "item";
var query = new RegExp("itEM", "i");
var foo = $.map(array, function(value,key){
if (value.classname.search(query) != -1){ //0 = none
value.classname.replace(query, "<div class='highlight'>"+searchterm+"</div>");
return value;
}
});
$.each(foo, function(key,value) {
$("body").append(key +" : "+value.classname+" <br>");
});
}
하고 검색 있다는 배열 :
여기 내 기능입니까? 감사. http://jsfiddle.net/bmcmahen/5HQga/9/
가'새로운 RegExp'을 사용하지 마십시오 : 당신이 와서 같은 배열 요소를 반환하고 있기 때문에
또한, 일반
for
루프, 더 적합 할 것 . JavaScript에는 RegExp 리터럴이 있습니다 :'/ itEM/i' – Ryan