60 lines
1.6 KiB
TypeScript
60 lines
1.6 KiB
TypeScript
export function capitalizeFirstLetter(input: string): string {
|
|
return input.charAt(0).toUpperCase() + input.slice(1);
|
|
}
|
|
|
|
export function toSnakeCase(input: string): string {
|
|
return input
|
|
.replace(/([a-z])([A-Z])/g, "$1_$2")
|
|
.replace(/[\s\-]+/g, "_")
|
|
.toLowerCase();
|
|
}
|
|
|
|
export function snakeCaseToTitleCase(input: string): string {
|
|
return input
|
|
.split("_")
|
|
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
.join(" ");
|
|
}
|
|
|
|
// Strips non-numeric characters from a string including spaces.
|
|
export function sanitizeNum(input: string): string {
|
|
return input.replaceAll(/[^\d]+/g, "");
|
|
}
|
|
|
|
// Strips non-alphanumeric, non-space characters from a string.
|
|
export function sanitizeAlphaNum(input: string): string {
|
|
return input.replaceAll(/[^a-zA-Z0-9 ]+/g, "");
|
|
}
|
|
|
|
// Strips non-alphanumeric characters from a string including spaces.
|
|
export function sanitizeAlphaNumStrict(input: string): string {
|
|
return input.replaceAll(/[^a-zA-Z0-9]+/g, "");
|
|
}
|
|
|
|
export function numberToStringWithCommas(n: number):string {
|
|
var str = n.toString();
|
|
|
|
var negative = false;
|
|
if (str.startsWith("-")) {
|
|
negative = true;
|
|
str = str.slice(1);
|
|
}
|
|
|
|
var result = "";
|
|
for (let i=0; i < str.length; i++) {
|
|
if (i > 0 && (str.length - i)%3 === 0) {
|
|
result += ",";
|
|
}
|
|
result += str[i]
|
|
}
|
|
|
|
if (negative) {
|
|
result = "-" + result;
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
export function clamp(val: number, min: number, max: number) : number {
|
|
return Math.min(Math.max(val, min), max);
|
|
} |