2011-02-01 4 views
0

나는 jquery autosuggest 플러그인을 가지고있다. Korea 다음은 2 개 개의 결과 즉 Korea (North) & Korea (South) 표시하지만 Korea (를 입력하면, 그 둘은 Korea (North) & Korea (South) 표시했다 어떤 결과를 표시하지. Korea (North) & Korea (South)javascript search() working problem

Korea ( 난이 검색 생각 :

에러에 대한 코드를 검색 한 후 그 다음 나는 결과의 입력 문자열을 검색하려면 search() 함수 ..

수단을 발견 함수는 괄호 (에서 멈추고 나는 왜 모른다? ??? STR = 시간, 즉 Korea (North) 쿼리 = 입력 문자열에서 하나 개의 결과 예 :

코드 :::

str.search(query) != -1 

곳 ..이 오류를 제거하기 위해 검색() 함수를 제안

하세요 Korea (

답변

1

search()의 첫 번째 매개 변수는 정규식으로 처리되고 Korea (은 잘못된 정규식입니다. 이것이 "Korea (North)".search("Korea (")이 실패하는 이유입니다. 대신

사용 indexOf() :

str.indexOf(query) != -1 
+0

자사가 작동하지 .. 작동합니다 정규 표현식에서 중요한 의미를 가진다 여기서 query는 enterd 문자열, 즉 'orea'입니다. 이제 전체적으로 작동하지 않습니다. –

+0

다음으로' str.indexOf (query)! = -1' :-) – arnaud576875

+0

@ user576875 : 이것에 대해 : var regx = new RegExp ("!? [^ &;] +;) (? <[^<> *) ("+ query +") (?! [^ <>] *>) (?! [^ &;] +;) ","gi ")' –

0

검색() 정규 표현식 기능입니다. .` 다음 (문자 탈출하면 검색이 실패 따라서 왜 (백 슬래시와 함께 사용했을 때 출력 결과를 같은

str.search("Korea \("); 
+0

thx ..하지만이 문자열은'query' ... 과 같은 변수에 있습니다 :'str.search (query);'쿼리는'Korea (' –

+1

You query.replace (/ [\\ (\\)] /, "/ \\ 1") – xzyfer

+0

위의 코드를 테스트하지 않았으므로 replace()를 사용하여 쿼리를 이스케이프 처리 할 수 ​​있습니다. replace() 구문을 사용하지만 Google에서 "mdc replace"라는 좋은 문서를 찾을 수 있어야합니다. – xzyfer