Files
ArtPlayer/packages/artplayer/src/utils/format.js
T
Harvey Zack 89b8525f2f Add unescape utility function and
artplayerPluginMultipleSubtitles plugin
2023-11-23 23:23:51 +08:00

47 lines
1.2 KiB
JavaScript

export function clamp(num, a, b) {
return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));
}
export function capitalize(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
export function isStringOrNumber(val) {
return ['string', 'number'].includes(typeof val);
}
export function secondToTime(second) {
if (!second) return '00:00';
const add0 = (num) => (num < 10 ? `0${num}` : String(num));
const hour = Math.floor(second / 3600);
const min = Math.floor((second - hour * 3600) / 60);
const sec = Math.floor(second - hour * 3600 - min * 60);
return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');
}
export function escape(str) {
return str.replace(
/[&<>'"]/g,
(tag) =>
({
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
"'": '&#39;',
'"': '&quot;',
})[tag] || tag,
);
}
export function unescape(str) {
const map = {
'&amp;': '&',
'&lt;': '<',
'&gt;': '>',
'&#39;': "'",
'&quot;': '"',
};
const reg = new RegExp(`(${Object.keys(map).join('|')})`, 'g');
return str.replace(reg, (tag) => map[tag] || tag);
}