Added a flag for wildcard case-insensitivity.

git-svn-id: https://svn.apache.org/repos/asf/lucene/java/trunk@150863 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Kelvin Tan 2002-12-03 11:47:26 +00:00
parent 1f66680c18
commit 1843c58c5c
1 changed files with 16 additions and 7 deletions

View File

@ -1,12 +1,13 @@
//
// JavaScript Lucene Query Validator
// Author: Kelvin Tan (kelvin@relevanz.com) // Author: Kelvin Tan (kelvin@relevanz.com)
// Date: 10/04/2002 // Date: 03/12/2002
// JavaScript Lucene Query Validator
// Version: $Id$
// validates a lucene query. // validates a lucene query.
// @param Form field that contains the query // @param Form field that contains the query
function doCheckLuceneQuery(queryField) function doCheckLuceneQuery(queryField)
{ {
var wildcardCaseInsensitive = true;
var query = queryField.value; var query = queryField.value;
if(query != null && query.length > 0) if(query != null && query.length > 0)
{ {
@ -20,7 +21,7 @@ function doCheckLuceneQuery(queryField)
} }
// check parentheses are used properly // check parentheses are used properly
matches = query.match(/^([^\n()]*|(\(([a-zA-Z0-9_+\-:()\" ]|\*)+\)))*$/); matches = query.match(/^([^\n()]*|(\(([a-zA-Z0-9_+\-:()\" ]|\*)+\)))*$/);
if(matches == null || matches.length == 0) if(matches == null || matches.length == 0)
{ {
alert("Invalid search query! Parentheses must contain at least one alphabet or number. Please try again.") alert("Invalid search query! Parentheses must contain at least one alphabet or number. Please try again.")
@ -34,7 +35,7 @@ function doCheckLuceneQuery(queryField)
alert("Invalid search query! '+' and '-' modifiers must be followed by at least one alphabet or number. Please try again.") alert("Invalid search query! '+' and '-' modifiers must be followed by at least one alphabet or number. Please try again.")
return false; return false;
} }
// check that quote marks are closed // check that quote marks are closed
matches = query.match(/\"/g); matches = query.match(/\"/g);
if(matches != null) if(matches != null)
@ -46,14 +47,22 @@ function doCheckLuceneQuery(queryField)
return false; return false;
} }
} }
// check ':' is used properly // check ':' is used properly
matches = query.match(/^(([^\n:]*|([a-zA-Z0-9_]|\*)+[:]([a-zA-Z0-9_()"]|\*)+))*$/); matches = query.match(/^(([^\n:]*|([a-zA-Z0-9_]|\*)+[:]([a-zA-Z0-9_()"]|\*)+))*$/);
if(matches == null || matches.length == 0) if(matches == null || matches.length == 0)
{ {
alert("Invalid search query! Field declarations (:) must be preceded by at least one alphabet or number and followed by at least one alphabet or number. Please try again.") alert("Invalid search query! Field declarations (:) must be preceded by at least one alphabet or number and followed by at least one alphabet or number. Please try again.")
return false; return false;
} }
if(wildcardCaseInsensitive)
{
if(query.indexOf("*") != -1)
{
queryField.value = query.toLowerCase();
}
}
return true; return true;
} }