⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 number.js

📁 这是一个ajax的例子大家好好的看看就是一个鱼眼的效果
💻 JS
📖 第 1 页 / 共 2 页
字号:
	var bundle = dojo.i18n.getLocalization("dojo.cldr", "number", locale);	var pattern = options.pattern || bundle[(options.type || "decimal") + "Format"];//TODO: memoize?	var group = bundle.group;	var decimal = bundle.decimal;	var factor = 1;	if(pattern.indexOf('%') != -1){		factor /= 100;	}else if(pattern.indexOf('\u2030') != -1){		factor /= 1000; // per mille	}else{		var isCurrency = pattern.indexOf('\u00a4') != -1;		if(isCurrency){			group = bundle.currencyGroup || group;			decimal = bundle.currencyDecimal || decimal;		}	}	//TODO: handle quoted escapes	var patternList = pattern.split(';');	if(patternList.length == 1){		patternList.push("-" + patternList[0]);	}	var re = dojo.regexp.buildGroupRE(patternList, function(pattern){		pattern = "(?:"+dojo.regexp.escapeString(pattern, '.')+")";		return pattern.replace(dojo.number._numberPatternRE, function(format){			var flags = {				signed: false,				separator: options.strict ? group : [group,""],				fractional: options.fractional,				decimal: decimal,				exponent: false};			var parts = format.split('.');			var places = options.places;			if(parts.length == 1 || places === 0){flags.fractional = false;}			else{				if(places === undefined){ places = parts[1].lastIndexOf('0')+1; }				if(places && options.fractional == undefined){flags.fractional = true;} // required fractional, unless otherwise specified				if(!options.places && (places < parts[1].length)){ places += "," + parts[1].length; }				flags.places = places;			}			var groups = parts[0].split(',');			if(groups.length>1){				flags.groupSize = groups.pop().length;				if(groups.length>1){					flags.groupSize2 = groups.pop().length;				}			}			return "("+dojo.number._realNumberRegexp(flags)+")";		});	}, true);	if(isCurrency){		// substitute the currency symbol for the placeholder in the pattern		re = re.replace(/(\s*)(\u00a4{1,3})(\s*)/g, function(match, before, target, after){			var prop = ["symbol", "currency", "displayName"][target.length-1];			var symbol = dojo.regexp.escapeString(options[prop] || options.currency || "");			before = before ? "\\s" : "";			after = after ? "\\s" : "";			if(!options.strict){				if(before){before += "*";}				if(after){after += "*";}				return "(?:"+before+symbol+after+")?";			}			return before+symbol+after;		});	}//TODO: substitute localized sign/percent/permille/etc.?	// normalize whitespace and return	return {regexp: re.replace(/[\xa0 ]/g, "[\\s\\xa0]"), group: group, decimal: decimal, factor: factor}; // Object}/*=====dojo.number.__ParseOptions = function(){	//	pattern: String	//		override pattern with this string.  Default is provided based on	//		locale.	//	type: String?	//		choose a format type based on the locale from the following:	//		decimal, scientific, percent, currency. decimal by default.	//	locale: String	//		override the locale used to determine formatting rules	//	strict: Boolean?	//		strict parsing, false by default	//	currency: Object	//		object with currency information	this.pattern = pattern;	this.type = type;	this.locale = locale;	this.strict = strict;	this.currency = currency;}=====*/dojo.number.parse = function(/*String*/expression, /*dojo.number.__ParseOptions?*/options){	// summary:	//		Convert a properly formatted string to a primitive Number, using	//		locale-specific settings.	// description:	//		Create a Number from a string using a known localized pattern.	//		Formatting patterns are chosen appropriate to the locale	//		and follow the syntax described by	//		[unicode.org TR35](http://www.unicode.org/reports/tr35/#Number_Format_Patterns)	// expression:	//		A string representation of a Number	var info = dojo.number._parseInfo(options);	var results = (new RegExp("^"+info.regexp+"$")).exec(expression);	if(!results){		return NaN; //NaN	}	var absoluteMatch = results[1]; // match for the positive expression	if(!results[1]){		if(!results[2]){			return NaN; //NaN		}		// matched the negative pattern		absoluteMatch =results[2];		info.factor *= -1;	}	// Transform it to something Javascript can parse as a number.  Normalize	// decimal point and strip out group separators or alternate forms of whitespace	absoluteMatch = absoluteMatch.		replace(new RegExp("["+info.group + "\\s\\xa0"+"]", "g"), "").		replace(info.decimal, ".");	// Adjust for negative sign, percent, etc. as necessary	return Number(absoluteMatch) * info.factor; //Number};/*=====dojo.number.__RealNumberRegexpFlags = function(){	//	places: Number?	//		The integer number of decimal places or a range given as "n,m".  If	//		not given, the decimal part is optional and the number of places is	//		unlimited.	//	decimal: String?	//		A string for the character used as the decimal point.  Default	//		is ".".	//	fractional: Boolean|Array?	//		Whether decimal places are allowed.  Can be true, false, or [true,	//		false].  Default is [true, false]	//	exponent: Boolean|Array?	//		Express in exponential notation.  Can be true, false, or [true,	//		false]. Default is [true, false], (i.e. will match if the	//		exponential part is present are not).	//	eSigned: Boolean|Array?	//		The leading plus-or-minus sign on the exponent.  Can be true,	//		false, or [true, false].  Default is [true, false], (i.e. will	//		match if it is signed or unsigned).  flags in regexp.integer can be	//		applied.	this.places = places;	this.decimal = decimal;	this.fractional = fractional;	this.exponent = exponent;	this.eSigned = eSigned;}=====*/dojo.number._realNumberRegexp = function(/*dojo.number.__RealNumberRegexpFlags?*/flags){	// summary:	//		Builds a regular expression to match a real number in exponential	//		notation	// assign default values to missing paramters	flags = flags || {};	//TODO: use mixin instead?	if(!("places" in flags)){ flags.places = Infinity; }	if(typeof flags.decimal != "string"){ flags.decimal = "."; }	if(!("fractional" in flags) || /^0/.test(flags.places)){ flags.fractional = [true, false]; }	if(!("exponent" in flags)){ flags.exponent = [true, false]; }	if(!("eSigned" in flags)){ flags.eSigned = [true, false]; }	// integer RE	var integerRE = dojo.number._integerRegexp(flags);	// decimal RE	var decimalRE = dojo.regexp.buildGroupRE(flags.fractional,		function(q){			var re = "";			if(q && (flags.places!==0)){				re = "\\" + flags.decimal;				if(flags.places == Infinity){ 					re = "(?:" + re + "\\d+)?"; 				}else{					re += "\\d{" + flags.places + "}"; 				}			}			return re;		},		true	);	// exponent RE	var exponentRE = dojo.regexp.buildGroupRE(flags.exponent,		function(q){ 			if(q){ return "([eE]" + dojo.number._integerRegexp({ signed: flags.eSigned}) + ")"; }			return ""; 		}	);	// real number RE	var realRE = integerRE + decimalRE;	// allow for decimals without integers, e.g. .25	if(decimalRE){realRE = "(?:(?:"+ realRE + ")|(?:" + decimalRE + "))";}	return realRE + exponentRE; // String};/*=====dojo.number.__IntegerRegexpFlags = function(){	//	signed: Boolean?	//		The leading plus-or-minus sign. Can be true, false, or `[true,false]`.	//		Default is `[true, false]`, (i.e. will match if it is signed	//		or unsigned).	//	separator: String?	//		The character used as the thousands separator. Default is no	//		separator. For more than one symbol use an array, e.g. `[",", ""]`,	//		makes ',' optional.	//	groupSize: Number?	//		group size between separators	//	groupSize2: Number?	//		second grouping, where separators 2..n have a different interval than the first separator (for India)	this.signed = signed;	this.separator = separator;	this.groupSize = groupSize;	this.groupSize2 = groupSize2;}=====*/dojo.number._integerRegexp = function(/*dojo.number.__IntegerRegexpFlags?*/flags){	// summary: 	//		Builds a regular expression that matches an integer	// assign default values to missing paramters	flags = flags || {};	if(!("signed" in flags)){ flags.signed = [true, false]; }	if(!("separator" in flags)){		flags.separator = "";	}else if(!("groupSize" in flags)){		flags.groupSize = 3;	}	// build sign RE	var signRE = dojo.regexp.buildGroupRE(flags.signed,		function(q) { return q ? "[-+]" : ""; },		true	);	// number RE	var numberRE = dojo.regexp.buildGroupRE(flags.separator,		function(sep){			if(!sep){				return "(?:0|[1-9]\\d*)";			}			sep = dojo.regexp.escapeString(sep);			if(sep == " "){ sep = "\\s"; }			else if(sep == "\xa0"){ sep = "\\s\\xa0"; }			var grp = flags.groupSize, grp2 = flags.groupSize2;			if(grp2){				var grp2RE = "(?:0|[1-9]\\d{0," + (grp2-1) + "}(?:[" + sep + "]\\d{" + grp2 + "})*[" + sep + "]\\d{" + grp + "})";				return ((grp-grp2) > 0) ? "(?:" + grp2RE + "|(?:0|[1-9]\\d{0," + (grp-1) + "}))" : grp2RE;			}			return "(?:0|[1-9]\\d{0," + (grp-1) + "}(?:[" + sep + "]\\d{" + grp + "})*)";		},		true	);	// integer RE	return signRE + numberRE; // String}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -