2010-04-12 4 views
12

자바 스크립트에서 사용자 입력을 사용하여 데이터베이스를 검색하려고합니다. 예를 들어, 사용자 입력은 "괴물"이고 데이터베이스의 데이터는 "괴물"입니다. 케이스에 관계없이 어떻게 일치시킬 수 있습니까?자바 스크립트 : 문자열의 대소 문자 구분 무시

+0

다음과 같은 것을 찾고 계십니까? http://stackoverflow.com/questions/177719/javascript-case-insensitive-search – zengr

+0

@ zengr 나는 그것이 그들이 찾고있는 것이라고 생각하지 않습니다. D –

답변

23

자바 스크립트 문자열 대/소문자를 구분하지 않는 비교는 string.toUpperCase을 사용하여 수행 할 수 있습니다.

if (input.toUpperCase() === "OTHER STRING") 
    .... 

(나는 데이터베이스 예를 가정하고있어 데이터베이스는 일반적으로 당신은 변환해야합니다 문자열 :

+0

당신은 함수를 호출하는 것을 잊어 버렸습니다. – SLaks

+1

''다른 문자열''이 소문자를 가지고 있기 때문에'(input.toUpperString == "다른 문자열")'과 같은'input' 값이 없습니다. – Dancrumb

+0

잘 사용하십시오 (input.toUpperCase() === "other 문자열 ".toUpperCase()) 또는 toLowerCase() ... – mojjj

0

의 경우를 무시로 단지 예입니다 모두 자바 스크립트 절은 소문자 문자열을 사용하는 문자열 및 데이터베이스.

하지만 SQL Server와 MySQL 같은 데이터베이스는 모두 문자열 측면에서 대소 문자를 구별합니다.

-1

AJAX를 사용중인 경우 서버 측 언어를 사용하고 있습니다. 왜 서버 측 스크립트가 데이터를 표준화하도록하지 않습니까? 적절한 UPPER 및 LOWER 함수를 사용하여이 작업을 데이터베이스에 위임 할 수도 있지만 보안상의 이유로 데이터 정규화는 서버 측 스크립트에 대한 작업이어야합니다.

JS를 사용하여 길이와 구문의 측면에서 데이터를 사전 점검 할 수 있습니다. 주로 사용자가 실수를 저지를 수 있도록 도와 주지만, 한 번만 수행하면 안되는 것은 쿼리 처리되지 않은 JS 데이터입니다. 누구나 JS를 조작하고 a' OR 1=1; DROP TABLE users;--을 쿼리 할 수 ​​있습니다. 데이터 유효성을 검사하더라도 마찬가지입니다.

+2

필수 : ​​http://xkcd.com/327/ – MatrixFrog

1

search() 대신 match()를 사용하십시오.

관련 문제