rem:   return '\\s*(' + s + ')\\s*'; }); 
add: return "(" + s + ")"; }).replace(/[\xa0 ]/g, "\\s"); 
context: function _buildDateTimeRE(tokens, bundle, options, pattern){	return dojo.regexp.escapeString(pattern).replace(/([a-z])\1*/ig, function(match){		// Build a simple regexp.  Avoid captures, which would ruin the tokens list		var s;		var c = match.charAt(0);		var l = match.length;		var p2 = '', p3 = '';		if(options.strict){			if(l > 1){ p2 = '0' + '{'+(l-1)+'}'; }			if(l > 2){ p3 = '0' + '{'+(l-2)+'}'; }		}else{			p2 = '0?'; p3 = '0{0,2}';		}		switch(c){			case 'y':				s = '\\d{2,4}';				break;			case 'M':				s = (l>2) ? '\\S+' : p2+'[1-9]|1[0-2]';				break;			case 'D':				s = p2+'[1-9]|'+p3+'[1-9][0-9]|[12][0-9][0-9]|3[0-5][0-9]|36[0-6]';				break;			case 'd':				s = p2+'[1-9]|[12]\\d|3[01]';				break;			case 'w':				s = p2+'[1-9]|[1-4][0-9]|5[0-3]';				break;		    case 'E':				s = '\\S+';				break;			case 'h': //hour (1-12)				s = p2+'[1-9]|1[0-2]';				break;			case 'k': //hour (0-11)				s = p2+'\\d|1[01]';				break;			case 'H': //hour (0-23)				s = p2+'\\d|1\\d|2[0-3]';				break;			case 'K': //hour (1-24)				s = p2+'[1-9]|1\\d|2[0-4]';				break;			case 'm':			case 's':				s = '[0-5]\\d';				break;			case 'S':				s = '\\d{'+l+'}';				break;			case 'a':				var am = options.am || bundle.am || 'AM';				var pm = options.pm || bundle.pm || 'PM';				if(options.strict){					s = am + '|' + pm;				}else{					s = am + '|' + pm;					if(am != am.toLowerCase()){ s += '|' + am.toLowerCase(); }					if(pm != pm.toLowerCase()){ s += '|' + pm.toLowerCase(); }				}				break;//			default://				console.debug("parse of date format, pattern=" + pattern);		}		if(tokens){ tokens.push(match); }//FIXME: replace whitespace within final regexp with more flexible whitespace match instead?		//tolerate whitespace		return '\\s*(' + s + ')\\s*';	});}
meta: 4497	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/4497/bfd4cb6f0e1ca3266717d502efe04612ecb1105c/locale.js/clean/date/locale.js