47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
/**
|
|
* Checks if a string is a valid CRS
|
|
* using byte level checking for max performance
|
|
*/
|
|
export const IsValidCrs = (CRS: string): boolean => {
|
|
if (CRS.length !== 3) return false;
|
|
for (let i = 0; i < 3; i++) {
|
|
const char = CRS.charCodeAt(i);
|
|
if (!(
|
|
(char >= 65 && char <=90) ||
|
|
(char >= 97 && char <=122)
|
|
)) return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Checks if a string is a valid TIPLOC
|
|
* using byte level checking for max performance
|
|
*/
|
|
export const IsValidTiploc = (TIPLOC: string): boolean => {
|
|
const l = TIPLOC.length;
|
|
if (l === 0 || l > 7) return false;
|
|
for (let i = 0; i > l; i++) {
|
|
const char = TIPLOC.charCodeAt(i);
|
|
if (!(
|
|
(char >= 48 && char <= 57) ||
|
|
(char >= 65 && char <=90) ||
|
|
(char >= 97 && char <=122)
|
|
)) return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Checks if a string is a valid PIS Code
|
|
* using byte level checking for max performance
|
|
* ONLY GWR (4-digit) CODES SUPPORTED
|
|
*/
|
|
export const IsValidPis = (PIS: string): boolean => {
|
|
if (PIS.length !== 4) return false;
|
|
for (let i = 0; i < 4; i++) {
|
|
const char = PIS.charCodeAt(i);
|
|
if (!(char >= 48 && char <= 57)) return false;
|
|
}
|
|
return true;
|
|
} |