mirror of
https://github.com/CompeyDev/fxtwitter-docker.git
synced 2025-04-08 20:10:54 +01:00
38 lines
1,012 B
TypeScript
38 lines
1,012 B
TypeScript
export const sanitizeText = (text: string) => {
|
|
return text
|
|
.replace(/"/g, '"')
|
|
.replace(/'/g, ''')
|
|
.replace(/</g, '<')
|
|
.replace(/>/g, '>');
|
|
};
|
|
|
|
export const unescapeText = (text: string) => {
|
|
return text
|
|
.replace(/"/g, '"')
|
|
.replace(/'/g, "'")
|
|
.replace(/</g, '<')
|
|
.replace(/>/g, '>')
|
|
.replace(/&/g, '&');
|
|
};
|
|
|
|
export const truncateWithEllipsis = (str: string, maxLength: number): string => {
|
|
const segmenter = new Intl.Segmenter('en', { granularity: 'grapheme' });
|
|
const segments = segmenter.segment(str);
|
|
let truncated = '';
|
|
let length = 0;
|
|
|
|
for (const segment of segments) {
|
|
if (length + segment.segment.length > maxLength) {
|
|
break;
|
|
}
|
|
truncated += segment.segment;
|
|
length += segment.segment.length;
|
|
}
|
|
|
|
return truncated.length < str.length ? truncated + '…' : truncated;
|
|
};
|
|
|
|
|
|
const numberFormat = new Intl.NumberFormat('en-US');
|
|
|
|
export const formatNumber = (num: number) => numberFormat.format(num);
|