mirror of
https://github.com/frappe/air-datepicker.git
synced 2026-01-14 11:01:22 +08:00
fixed dateFormat method for special characters
This commit is contained in:
parent
fbb3557e4c
commit
d9aea004ae
29
dist/js/datepicker.js
vendored
29
dist/js/datepicker.js
vendored
@ -302,6 +302,7 @@ var Datepicker;
|
|||||||
formatDate: function (string, date) {
|
formatDate: function (string, date) {
|
||||||
date = date || this.date;
|
date = date || this.date;
|
||||||
var result = string,
|
var result = string,
|
||||||
|
boundary = this._getWordBoundaryRegExp,
|
||||||
locale = this.loc,
|
locale = this.loc,
|
||||||
decade = datepicker.getDecade(date),
|
decade = datepicker.getDecade(date),
|
||||||
d = datepicker.getParsedDate(date);
|
d = datepicker.getParsedDate(date);
|
||||||
@ -310,34 +311,38 @@ var Datepicker;
|
|||||||
case /@/.test(result):
|
case /@/.test(result):
|
||||||
result = result.replace(/@/, date.getTime());
|
result = result.replace(/@/, date.getTime());
|
||||||
case /dd/.test(result):
|
case /dd/.test(result):
|
||||||
result = result.replace(/\bdd\b/, d.fullDate);
|
result = result.replace(boundary('dd'), d.fullDate);
|
||||||
case /d/.test(result):
|
case /d/.test(result):
|
||||||
result = result.replace(/\bd\b/, d.date);
|
result = result.replace(boundary('d'), d.date);
|
||||||
case /DD/.test(result):
|
case /DD/.test(result):
|
||||||
result = result.replace(/\bDD\b/, locale.days[d.day]);
|
result = result.replace(boundary('DD'), locale.days[d.day]);
|
||||||
case /D/.test(result):
|
case /D/.test(result):
|
||||||
result = result.replace(/\bD\b/, locale.daysShort[d.day]);
|
result = result.replace(boundary('D'), locale.daysShort[d.day]);
|
||||||
case /mm/.test(result):
|
case /mm/.test(result):
|
||||||
result = result.replace(/\bmm\b/, d.fullMonth);
|
result = result.replace(boundary('mm'), d.fullMonth);
|
||||||
case /m/.test(result):
|
case /m/.test(result):
|
||||||
result = result.replace(/\bm\b/, d.month + 1);
|
result = result.replace(boundary('m'), d.month + 1);
|
||||||
case /MM/.test(result):
|
case /MM/.test(result):
|
||||||
result = result.replace(/\bMM\b/, this.loc.months[d.month]);
|
result = result.replace(boundary('MM'), this.loc.months[d.month]);
|
||||||
case /M/.test(result):
|
case /M/.test(result):
|
||||||
result = result.replace(/\bM\b/, locale.monthsShort[d.month]);
|
result = result.replace(boundary('M'), locale.monthsShort[d.month]);
|
||||||
case /yyyy/.test(result):
|
case /yyyy/.test(result):
|
||||||
result = result.replace(/\byyyy\b/, d.year);
|
result = result.replace(boundary('yyyy'), d.year);
|
||||||
case /yyyy1/.test(result):
|
case /yyyy1/.test(result):
|
||||||
result = result.replace(/\byyyy1\b/, decade[0]);
|
result = result.replace(boundary('yyyy1'), decade[0]);
|
||||||
case /yyyy2/.test(result):
|
case /yyyy2/.test(result):
|
||||||
result = result.replace(/\byyyy2\b/, decade[1]);
|
result = result.replace(boundary('yyyy2'), decade[1]);
|
||||||
case /yy/.test(result):
|
case /yy/.test(result):
|
||||||
result = result.replace(/\byy\b/, d.year.toString().slice(-2));
|
result = result.replace(boundary('yy'), d.year.toString().slice(-2));
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_getWordBoundaryRegExp: function (sign) {
|
||||||
|
return new RegExp('\\b(?=[a-zA-Z0-9äöüßÄÖÜ<])' + sign + '(?![>a-zA-Z0-9äöüßÄÖÜ])');
|
||||||
|
},
|
||||||
|
|
||||||
selectDate: function (date) {
|
selectDate: function (date) {
|
||||||
var _this = this,
|
var _this = this,
|
||||||
opts = _this.opts,
|
opts = _this.opts,
|
||||||
|
|||||||
2
dist/js/datepicker.min.js
vendored
2
dist/js/datepicker.min.js
vendored
File diff suppressed because one or more lines are too long
@ -302,6 +302,7 @@ var Datepicker;
|
|||||||
formatDate: function (string, date) {
|
formatDate: function (string, date) {
|
||||||
date = date || this.date;
|
date = date || this.date;
|
||||||
var result = string,
|
var result = string,
|
||||||
|
boundary = this._getWordBoundaryRegExp,
|
||||||
locale = this.loc,
|
locale = this.loc,
|
||||||
decade = datepicker.getDecade(date),
|
decade = datepicker.getDecade(date),
|
||||||
d = datepicker.getParsedDate(date);
|
d = datepicker.getParsedDate(date);
|
||||||
@ -310,34 +311,38 @@ var Datepicker;
|
|||||||
case /@/.test(result):
|
case /@/.test(result):
|
||||||
result = result.replace(/@/, date.getTime());
|
result = result.replace(/@/, date.getTime());
|
||||||
case /dd/.test(result):
|
case /dd/.test(result):
|
||||||
result = result.replace(/\bdd\b/, d.fullDate);
|
result = result.replace(boundary('dd'), d.fullDate);
|
||||||
case /d/.test(result):
|
case /d/.test(result):
|
||||||
result = result.replace(/\bd\b/, d.date);
|
result = result.replace(boundary('d'), d.date);
|
||||||
case /DD/.test(result):
|
case /DD/.test(result):
|
||||||
result = result.replace(/\bDD\b/, locale.days[d.day]);
|
result = result.replace(boundary('DD'), locale.days[d.day]);
|
||||||
case /D/.test(result):
|
case /D/.test(result):
|
||||||
result = result.replace(/\bD\b/, locale.daysShort[d.day]);
|
result = result.replace(boundary('D'), locale.daysShort[d.day]);
|
||||||
case /mm/.test(result):
|
case /mm/.test(result):
|
||||||
result = result.replace(/\bmm\b/, d.fullMonth);
|
result = result.replace(boundary('mm'), d.fullMonth);
|
||||||
case /m/.test(result):
|
case /m/.test(result):
|
||||||
result = result.replace(/\bm\b/, d.month + 1);
|
result = result.replace(boundary('m'), d.month + 1);
|
||||||
case /MM/.test(result):
|
case /MM/.test(result):
|
||||||
result = result.replace(/\bMM\b/, this.loc.months[d.month]);
|
result = result.replace(boundary('MM'), this.loc.months[d.month]);
|
||||||
case /M/.test(result):
|
case /M/.test(result):
|
||||||
result = result.replace(/\bM\b/, locale.monthsShort[d.month]);
|
result = result.replace(boundary('M'), locale.monthsShort[d.month]);
|
||||||
case /yyyy/.test(result):
|
case /yyyy/.test(result):
|
||||||
result = result.replace(/\byyyy\b/, d.year);
|
result = result.replace(boundary('yyyy'), d.year);
|
||||||
case /yyyy1/.test(result):
|
case /yyyy1/.test(result):
|
||||||
result = result.replace(/\byyyy1\b/, decade[0]);
|
result = result.replace(boundary('yyyy1'), decade[0]);
|
||||||
case /yyyy2/.test(result):
|
case /yyyy2/.test(result):
|
||||||
result = result.replace(/\byyyy2\b/, decade[1]);
|
result = result.replace(boundary('yyyy2'), decade[1]);
|
||||||
case /yy/.test(result):
|
case /yy/.test(result):
|
||||||
result = result.replace(/\byy\b/, d.year.toString().slice(-2));
|
result = result.replace(boundary('yy'), d.year.toString().slice(-2));
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_getWordBoundaryRegExp: function (sign) {
|
||||||
|
return new RegExp('\\b(?=[a-zA-Z0-9äöüßÄÖÜ<])' + sign + '(?![>a-zA-Z0-9äöüßÄÖÜ])');
|
||||||
|
},
|
||||||
|
|
||||||
selectDate: function (date) {
|
selectDate: function (date) {
|
||||||
var _this = this,
|
var _this = this,
|
||||||
opts = _this.opts,
|
opts = _this.opts,
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
<script type="text/javascript" src="../bower_components/jquery/dist/jquery.min.js"></script>
|
<script type="text/javascript" src="../bower_components/jquery/dist/jquery.min.js"></script>
|
||||||
<script type="text/javascript" src="../dist/js/datepicker.js"></script>
|
<script type="text/javascript" src="../dist/js/datepicker.js"></script>
|
||||||
<script type="text/javascript" src="../dist/js/i18n/datepicker.en.js"></script>
|
<script type="text/javascript" src="../dist/js/i18n/datepicker.en.js"></script>
|
||||||
|
<script type="text/javascript" src="../dist/js/i18n/datepicker.de.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript" src="../node_modules/mocha/mocha.js"></script>
|
<script type="text/javascript" src="../node_modules/mocha/mocha.js"></script>
|
||||||
<script type="text/javascript" src="../node_modules/chai/chai.js"></script>
|
<script type="text/javascript" src="../node_modules/chai/chai.js"></script>
|
||||||
|
|||||||
@ -136,7 +136,6 @@ describe('Options', function () {
|
|||||||
'yy': 15,
|
'yy': 15,
|
||||||
'yyyy1': 2010,
|
'yyyy1': 2010,
|
||||||
'yyyy2': 2019
|
'yyyy2': 2019
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
for (var format in formats) {
|
for (var format in formats) {
|
||||||
@ -151,6 +150,15 @@ describe('Options', function () {
|
|||||||
})
|
})
|
||||||
}(format))
|
}(format))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
it('should work with special characters', function () {
|
||||||
|
dp = $input.datepicker({
|
||||||
|
language: 'de',
|
||||||
|
dateFormat: 'Month is MM'
|
||||||
|
}).data('datepicker');
|
||||||
|
dp.selectDate(new Date(2016, 2, 1));
|
||||||
|
expect(dp.$el.val()).to.be.equal('Month is März');
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('altField', function () {
|
describe('altField', function () {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user