使用javascript从Parse搜索不区分大小写的数据

Sha*_*shi 8 javascript parse-platform

我正在使用Parse.com并使用它访问它Javascript.我想以这样的方式搜索数据,它不会搜索区分大小写,如果我搜索abc它会给出abc, Abc, ABC,aBc etc all.但目前只给出abc.

JavaScript的:

var search_data="Temp";
var product = Parse.Object.extend("product");
var query = new Parse.Query(product);

query.contains("name",search_data); 
query.find({
     success: function(results) {
        console.log("Total Product Found : "+results.length);
        printSearchProducts(results,query);  //custom method to print product detail
     },
     error: function(error) {
         console.log("Error: " + error.code + " " + error.message);
     }
 });
Run Code Online (Sandbox Code Playgroud)

实际结果: Temp1,Temp2,Temp3,ProductTemp3,Temp4Product etc.

要求的结果: Temp1,Temp2,Temp3,ProductTemp3,Temp4Product,temp5,producttemp6,TEMP7,tEMp8 etc.

akm*_*ozo 33

为此,您可以使用Parse.Query' match()函数,即使它在文档页面中没有显示,但您可以像这样使用它:

query.matches(key, value, 'i');
Run Code Online (Sandbox Code Playgroud)

希望能有所帮助.


ard*_*ian 5

此时您无法通过查询执行不区分大小写的搜索.

但是,一个非常简单的解决方法是存储您需要执行此查询的字段的小写版本.

创建项目

var Product = Parse.Object.extend("product");
var newProduct = new Product();
var productName = "Temp4Product";
newProduct.set("name",productName);
newProduct.set("name_lowercase",productName.toLowerCase());
newProduct.save(); 
Run Code Online (Sandbox Code Playgroud)

执行查询

var search_data="Temp";
var product = Parse.Object.extend("product");
var query = new Parse.Query(product);

query.contains("name_lowercase",search_data.toLowerCase()); 
query.find({
     success: function(results) {
        console.log("Total Product Found : "+results.length);
        printSearchProducts(results,query);  //custom method to print product detail
     },
     error: function(error) {
         console.log("Error: " + error.code + " " + error.message);
     }
 });
Run Code Online (Sandbox Code Playgroud)

请注意,在上面的示例中,我使用了string.toLowerCase()函数,但是可能有更合适的函数供您使用.基本上,您希望找到一种"简化"数据的方法,以便您可以执行适当的查询.