2010-04-12 34 views
12

Trong JavaScript, tôi đang cố gắng sử dụng dữ liệu nhập của người dùng để tìm kiếm cơ sở dữ liệu của mình. Ví dụ: đầu vào của người dùng là "quái vật" và dữ liệu của cơ sở dữ liệu của tôi là "Quái vật". Làm thế nào tôi có thể có nó phù hợp với bất kể đó là vỏ?javascript: bỏ qua độ nhạy trường hợp của các chuỗi

+0

Bạn đang tìm kiếm một cái gì đó như thế này: http://stackoverflow.com/questions/177719/javascript-case-insensitive-search – zengr

+0

@zengr Tôi không nghĩ đó là những gì họ đang tìm kiếm. Điều này liên quan đến việc tìm kiếm một cơ sở dữ liệu như trái ngược với tìm kiếm chuỗi: D –

Trả lời

23

So sánh phân biệt chữ hoa chữ thường Javascript có thể được thực hiện với string.toUpperCase.

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

(tôi giả dụ cơ sở dữ liệu của bạn chỉ là một ví dụ như cơ sở dữ liệu thường bỏ qua trường hợp của chuỗi :)

+0

Bạn quên gọi hàm. – SLaks

+1

Không có giá trị 'đầu vào' như vậy mà' (input.toUpperString == "chuỗi khác") ', vì' "chuỗi khác" 'có ký tự chữ thường – Dancrumb

+0

sau đó sử dụng (input.toUpperCase() ===" khác chuỗi ".toUpperCase()) hoặc toLowerCase() trên cả hai ... – mojjj

0

Bạn nên chuyển đổi cả javascript chuỗi và cơ sở dữ liệu mệnh đề where để sử dụng chuỗi chữ thường.

Nhưng tôi đoán cơ sở dữ liệu như máy chủ sql và mysql là tất cả các trường hợp không nhạy cảm về chuỗi.

-1

Nếu bạn đang sử dụng AJAX thì bạn đang sử dụng ngôn ngữ phía máy chủ. Tại sao bạn không để cho kịch bản phía máy chủ bình thường hóa dữ liệu ?. Bạn thậm chí có thể ủy nhiệm nhiệm vụ này cho cơ sở dữ liệu, sử dụng các hàm UPPER và LOWER thích hợp, nhưng vì lý do bảo mật, việc chuẩn hóa dữ liệu phải là một nhiệm vụ cho kịch bản phía máy chủ. Bạn có thể sử dụng JS để kiểm tra trước dữ liệu về chiều dài và cú pháp, chủ yếu để giúp đỡ và ngăn chặn người dùng mắc lỗi, nhưng một điều bạn không bao giờ nên làm là truy vấn dữ liệu JS chưa được xử lý. Bất kỳ ai cũng có thể thao tác JS và truy vấn a' OR 1=1; DROP TABLE users;--, ngay cả khi bạn xác thực dữ liệu.

+2

Bắt buộc: http://xkcd.com/327/ – MatrixFrog

1

Sử dụng đối sánh() thay vì tìm kiếm().

Các vấn đề liên quan