Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["dojo.data.util.filter"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojo.data.util.filter"] = true;dojo.provide("dojo.data.util.filter");dojo.data.util.filter.patternToRegExp = function(/*String*/pattern, /*boolean?*/ ignoreCase){// summary:// Helper function to convert a simple pattern to a regular expression for matching.// description:// Returns a regular expression object that conforms to the defined conversion rules.// For example:// ca* -> /^ca.*$/// *ca* -> /^.*ca.*$/// *c\*a* -> /^.*c\*a.*$/// *c\*a?* -> /^.*c\*a..*$/// and so on.//// pattern: string// A simple matching pattern to convert that follows basic rules:// * Means match anything, so ca* means match anything starting with ca// ? Means match single character. So, b?b will match to bob and bab, and so on.// \ is an escape character. So for example, \* means do not treat * as a match, but literal character *.// To use a \ as a character in the string, it must be escaped. So in the pattern it should be// represented by \\ to be treated as an ordinary \ character instead of an escape.//// ignoreCase:// An optional flag to indicate if the pattern matching should be treated as case-sensitive or not when comparing// By default, it is assumed case sensitive.var rxp = "^";var c = null;for(var i = 0; i < pattern.length; i++){c = pattern.charAt(i);switch (c) {case '\\':rxp += c;i++;rxp += pattern.charAt(i);break;case '*':rxp += ".*"; break;case '?':rxp += "."; break;case '$':case '^':case '/':case '+':case '.':case '|':case '(':case ')':case '{':case '}':case '[':case ']':rxp += "\\"; //fallthroughdefault:rxp += c;}}rxp += "$";if(ignoreCase){return new RegExp(rxp,"i"); //RegExp}else{return new RegExp(rxp); //RegExp}};}