JQuery 자동 완성을위한 배열의 정규 표현식 검색이 올바르게 작동하지 않습니다.자바 스크립트에서 정규 표현식 검색
다음var names = [ "Jorn Zaefferer", "Scott Gonzalez", "John Resig" ];
JQuery와의 자동 완성 기능입니다 :
$("#developer").autocomplete({
source: function(request, response) {
var matcher = new RegExp('^'+request.term,'g');
var arr=new Array();
for(var i=0;i<names.length;i++)
{
var index=0;
if(matcher.test(names[i])===true) //not returning true
{
console.log("it is true");
arr.push(names[i]);
}
else
{
console.log("not done");
}
}
response(arr);
}
});
조건부 문 : 코드의
if(matcher.test(names[i])===true)
사실 반환하지 않습니다
나는 배열을 가지고있다. 왜?
옵션 'g'는 가비지 또는 상태를 유지하지 않습니다. 사실,'test'에는 아무런 영향을 미치지 않습니다. –
@MarioRossi -'.test()'에 대한 [MDN doc] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test)에는 다음과 같이 설명되어 있습니다 :'As exec와 함께 (또는 그것과 결합하여) 같은 전역 정규 표현식 인스턴스에서 여러 번 호출 된 테스트는 이전의 일치를 넘어서게 될 것입니다. '다중 일치를 찾으려는 경우 OP 코드에 문제가 발생할 수 있습니다. – jfriend00
만약 당신이 말하지 않았다면'test' ** ** target **이 바뀌더라도 JavaScript가 그런 식으로 동작한다고 믿는 데 어려움을 겪었을 것입니다. –