lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kelv...@apache.org
Subject cvs commit: jakarta-lucene-sandbox/contributions/javascript/queryValidator luceneQueryValidator.js
Date Wed, 08 May 2002 15:56:58 GMT
kelvint     02/05/08 08:56:58

  Added:       contributions/javascript/queryValidator
                        luceneQueryValidator.js
  Log:
  Initial commit of javascript lucene query validator.
  This is the version from http://marc.theaimsgroup.com/?l=lucene-user&m=101964415222254&w=2.
  I'm so glad its finally been rescued from the depths of mailing list archives!
  
  Revision  Changes    Path
  1.1                  jakarta-lucene-sandbox/contributions/javascript/queryValidator/luceneQueryValidator.js
  
  Index: luceneQueryValidator.js
  ===================================================================
  //
  // JavaScript Lucene Query Validator
  // Author: Kelvin Tan  (kelvin@relevanz.com)
  // Date:   10/04/2002
  
  // validates a lucene query.
  // @param Form field that contains the query
  function doCheckLuceneQuery(queryField)
  {
    var query = queryField.value;
    if(query != null && query.length > 0)
    {
      var matches = query.match(/^(\*)|([^a-zA-Z0-9_]\*)/);
  
      // check wildcards are used properly
      if(matches != null && matches.length > 0)
      {
        alert("Invalid search query! The wildcard (*) character must be preceded by at least
one alphabet or number. Please try again.")
        return false;
      }
  
      // check parentheses are used properly
        matches = query.match(/^([^\n()]*|(\(([a-zA-Z0-9_+\-:()\" ]|\*)+\)))*$/);
      if(matches == null || matches.length == 0)
      {
        alert("Invalid search query! Parentheses must contain at least one alphabet or number.
Please try again.")
        return false;
      }
  
      // check '+' and '-' are used properly      
      matches = query.match(/^(([^\n+-]*|[+-]([a-zA-Z0-9_:()]|\*)+))*$/);
      if(matches == null || matches.length == 0)
      {
        alert("Invalid search query! '+' and '-' modifiers must be followed by at least one
alphabet or number. Please try again.")
        return false;
      }      
  
      // check that quote marks are closed
      matches = query.match(/\"/g);
      if(matches != null)
      {
        var number = matches.length;
        if((number % 2) > 0)
        {
          alert("Invalid search query! Please close all quote (\") marks.");
          return false;
        }
      }
  
      // check ':' is used properly
        matches = query.match(/^(([^\n:]*|([a-zA-Z0-9_]|\*)+[:]([a-zA-Z0-9_()"]|\*)+))*$/);
      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.")
        return false;
      }
  
      return true;
    }
  }
  
  
  

--
To unsubscribe, e-mail:   <mailto:lucene-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:lucene-dev-help@jakarta.apache.org>


Mime
View raw message