📄 microsoftajax.debug.js
字号:
/// <param name="value" type="String"></param>
/// <param name="formats" parameterArray="true" optional="true" mayBeNull="true"></param>
/// <returns type="Date"></returns>
var e = Function._validateParams(arguments, [
{name: "value", type: String},
{name: "formats", mayBeNull: true, optional: true, parameterArray: true}
]);
if (e) throw e;
return Date._parse(value, Sys.CultureInfo.InvariantCulture, arguments);
}
Date._parse = function Date$_parse(value, cultureInfo, args) {
var custom = false;
for (var i = 1, il = args.length; i < il; i++) {
var format = args[i];
if (format) {
custom = true;
var date = Date._parseExact(value, format, cultureInfo);
if (date) return date;
}
}
if (! custom) {
var formats = cultureInfo._getDateTimeFormats();
for (var i = 0, il = formats.length; i < il; i++) {
var date = Date._parseExact(value, formats[i], cultureInfo);
if (date) return date;
}
}
return null;
}
Date._parseExact = function Date$_parseExact(value, format, cultureInfo) {
value = value.trim();
var dtf = cultureInfo.dateTimeFormat;
var parseInfo = Date._getParseRegExp(dtf, format);
var match = new RegExp(parseInfo.regExp).exec(value);
if (match !== null) {
var groups = parseInfo.groups;
var year = null, month = null, date = null, weekDay = null;
var hour = 0, min = 0, sec = 0, msec = 0, tzMinOffset = null;
var pmHour = false;
for (var j = 0, jl = groups.length; j < jl; j++) {
var matchGroup = match[j+1];
if (matchGroup) {
switch (groups[j]) {
case 'dd': case 'd':
date = Date._parseInt(matchGroup);
if ((date < 1) || (date > 31)) return null;
break;
case 'MMMM':
month = cultureInfo._getMonthIndex(matchGroup);
if ((month < 0) || (month > 11)) return null;
break;
case 'MMM':
month = cultureInfo._getAbbrMonthIndex(matchGroup);
if ((month < 0) || (month > 11)) return null;
break;
case 'M': case 'MM':
var month = Date._parseInt(matchGroup) - 1;
if ((month < 0) || (month > 11)) return null;
break;
case 'y': case 'yy':
year = Date._expandYear(dtf,Date._parseInt(matchGroup));
if ((year < 0) || (year > 9999)) return null;
break;
case 'yyyy':
year = Date._parseInt(matchGroup);
if ((year < 0) || (year > 9999)) return null;
break;
case 'h': case 'hh':
hour = Date._parseInt(matchGroup);
if (hour === 12) hour = 0;
if ((hour < 0) || (hour > 11)) return null;
break;
case 'H': case 'HH':
hour = Date._parseInt(matchGroup);
if ((hour < 0) || (hour > 23)) return null;
break;
case 'm': case 'mm':
min = Date._parseInt(matchGroup);
if ((min < 0) || (min > 59)) return null;
break;
case 's': case 'ss':
sec = Date._parseInt(matchGroup);
if ((sec < 0) || (sec > 59)) return null;
break;
case 'tt': case 't':
var upperToken = matchGroup.toUpperCase();
pmHour = (upperToken === dtf.PMDesignator.toUpperCase());
if (!pmHour && (upperToken !== dtf.AMDesignator.toUpperCase())) return null;
break;
case 'f':
msec = Date._parseInt(matchGroup) * 100;
if ((msec < 0) || (msec > 999)) return null;
break;
case 'ff':
msec = Date._parseInt(matchGroup) * 10;
if ((msec < 0) || (msec > 999)) return null;
break;
case 'fff':
msec = Date._parseInt(matchGroup);
if ((msec < 0) || (msec > 999)) return null;
break;
case 'dddd':
weekDay = cultureInfo._getDayIndex(matchGroup);
if ((weekDay < 0) || (weekDay > 6)) return null;
break;
case 'ddd':
weekDay = cultureInfo._getAbbrDayIndex(matchGroup);
if ((weekDay < 0) || (weekDay > 6)) return null;
break;
case 'zzz':
var offsets = matchGroup.split(/:/);
if (offsets.length !== 2) return null;
var hourOffset = Date._parseInt(offsets[0]);
if ((hourOffset < -12) || (hourOffset > 13)) return null;
var minOffset = Date._parseInt(offsets[1]);
if ((minOffset < 0) || (minOffset > 59)) return null;
tzMinOffset = (hourOffset * 60) + (matchGroup.startsWith('-')? -minOffset : minOffset);
break;
case 'z': case 'zz':
var hourOffset = Date._parseInt(matchGroup);
if ((hourOffset < -12) || (hourOffset > 13)) return null;
tzMinOffset = hourOffset * 60;
break;
}
}
}
var result = new Date();
if (year === null) {
year = result.getFullYear();
}
if (month === null) {
month = result.getMonth();
}
if (date === null) {
date = result.getDate();
}
result.setFullYear(year, month, date);
if (result.getDate() !== date) return null;
if ((weekDay !== null) && (result.getDay() !== weekDay)) {
return null;
}
if (pmHour && (hour < 12)) {
hour += 12;
}
result.setHours(hour, min, sec, msec);
if (tzMinOffset !== null) {
var adjustedMin = result.getMinutes() - (tzMinOffset + result.getTimezoneOffset());
result.setHours(result.getHours() + parseInt(adjustedMin/60), adjustedMin%60);
}
return result;
}
}
Date._parseInt = function Date$_parseInt(value) {
return parseInt(value.replace(/^[\s0]+(\d+)$/,"$1"));
}
Date.prototype.format = function Date$format(format) {
/// <param name="format" type="String"></param>
/// <returns type="String"></returns>
var e = Function._validateParams(arguments, [
{name: "format", type: String}
]);
if (e) throw e;
return this._toFormattedString(format, Sys.CultureInfo.InvariantCulture);
}
Date.prototype.localeFormat = function Date$localeFormat(format) {
/// <param name="format" type="String"></param>
/// <returns type="String"></returns>
var e = Function._validateParams(arguments, [
{name: "format", type: String}
]);
if (e) throw e;
return this._toFormattedString(format, Sys.CultureInfo.CurrentCulture);
}
Date.prototype._toFormattedString = function Date$_toFormattedString(format, cultureInfo) {
if (!format || (format.length === 0) || (format === 'i')) {
if (cultureInfo && (cultureInfo.name.length > 0)) {
return this.toLocaleString();
}
else {
return this.toString();
}
}
var dtf = cultureInfo.dateTimeFormat;
format = Date._expandFormat(dtf, format);
var ret = new Sys.StringBuilder();
var hour;
function addLeadingZero(num) {
if (num < 10) {
return '0' + num;
}
return num.toString();
}
function addLeadingZeros(num) {
if (num < 10) {
return '00' + num;
}
if (num < 100) {
return '0' + num;
}
return num.toString();
}
var quoteCount = 0;
var tokenRegExp = Date._getTokenRegExp();
for (;;) {
var index = tokenRegExp.lastIndex;
var ar = tokenRegExp.exec(format);
var preMatch = format.slice(index, ar ? ar.index : format.length);
quoteCount += Date._appendPreOrPostMatch(preMatch, ret);
if (!ar) break;
if ((quoteCount%2) === 1) {
ret.append(ar[0]);
continue;
}
switch (ar[0]) {
case "dddd":
ret.append(dtf.DayNames[this.getDay()]);
break;
case "ddd":
ret.append(dtf.AbbreviatedDayNames[this.getDay()]);
break;
case "dd":
ret.append(addLeadingZero(this.getDate()));
break;
case "d":
ret.append(this.getDate());
break;
case "MMMM":
ret.append(dtf.MonthNames[this.getMonth()]);
break;
case "MMM":
ret.append(dtf.AbbreviatedMonthNames[this.getMonth()]);
break;
case "MM":
ret.append(addLeadingZero(this.getMonth() + 1));
break;
case "M":
ret.append(this.getMonth() + 1);
break;
case "yyyy":
ret.append(this.getFullYear());
break;
case "yy":
ret.append(addLeadingZero(this.getFullYear() % 100));
break;
case "y":
ret.append(this.getFullYear() % 100);
break;
case "hh":
hour = this.getHours() % 12;
if (hour === 0) hour = 12;
ret.append(addLeadingZero(hour));
break;
case "h":
hour = this.getHours() % 12;
if (hour === 0) hour = 12;
ret.append(hour);
break;
case "HH":
ret.append(addLeadingZero(this.getHours()));
break;
case "H":
ret.append(this.getHours());
break;
case "mm":
ret.append(addLeadingZero(this.getMinutes()));
break;
case "m":
ret.append(this.getMinutes());
break;
case "ss":
ret.append(addLeadingZero(this.getSeconds()));
break;
case "s":
ret.append(this.getSeconds());
break;
case "tt":
ret.append((this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator);
break;
case "t":
ret.append(((this.getHours() < 12) ? dtf.AMDesignator : dtf.PMDesignator).charAt(0));
break;
case "f":
ret.append(addLeadingZeros(this.getMilliseconds()).charAt(0));
break;
case "ff":
ret.append(addLeadingZeros(this.getMilliseconds()).substr(0, 2));
break;
case "fff":
ret.append(addLeadingZeros(this.getMilliseconds()));
break;
case "z":
hour = this.getTimezoneOffset() / 60;
ret.append(((hour >= 0) ? '+' : '-') + Math.floor(Math.abs(hour)));
break;
case "zz":
hour = this.getTimezoneOffset() / 60;
ret.append(((hour >= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour))));
break;
case "zzz":
hour = this.getTimezoneOffset() / 60;
ret.append(((hour >= 0) ? '+' : '-') + addLeadingZero(Math.floor(Math.abs(hour))) +
dtf.TimeSeparator + addLeadingZero(Math.abs(this.getTimezoneOffset() % 60)));
break;
}
}
return ret.toString();
}
Number.__typeName = 'Number';
Number.__class = true;
Number.parseLocale = function Number$parseLocale(value) {
/// <param name="value" type="String"></param>
/// <returns type="Number"></returns>
var e = Function._validateParams(arguments, [
{name: "value", type: String}
]);
if (e) throw e;
return Number._parse(value, Sys.CultureInfo.CurrentCulture);
}
Number.parseInvariant = function Number$parseInvariant(value) {
/// <param name="value" type="String"></param>
/// <returns type="Number"></returns>
var e = Function._validateParams(arguments, [
{name: "value", type: String}
]);
if (e) throw e;
return Number._parse(value, Sys.CultureInfo.InvariantCulture);
}
Number._parse = function Number$_parse(value, cultureInfo) {
var valueStr = value.trim();
if (valueStr.match(/infinity/i) !== null) {
return parseFloat(valueStr);
}
if (valueStr.match(/^0x[a-f0-9]+$/i) !== null) {
return parseInt(valueStr);
}
var numFormat = cultureInfo.numberFormat;
var decSeparator = numFormat.NumberDecimalSeparator;
var grpSeparator = numFormat.NumberGroupSeparator;
var numberFormatRegex = new RegExp("^[+-]?[\\d\\" + grpSeparator + "]*\\" + decSeparator + "?\\d*([eE][+-]?\\d+)?$");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -