Estructura inicial del proyecto
This commit is contained in:
44
backend/node_modules/bson/src/utils/string_utils.ts
generated
vendored
Normal file
44
backend/node_modules/bson/src/utils/string_utils.ts
generated
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
/**
|
||||
* @internal
|
||||
* Removes leading zeros and explicit plus from textual representation of a number.
|
||||
*/
|
||||
export function removeLeadingZerosAndExplicitPlus(str: string): string {
|
||||
if (str === '') {
|
||||
return str;
|
||||
}
|
||||
|
||||
let startIndex = 0;
|
||||
|
||||
const isNegative = str[startIndex] === '-';
|
||||
const isExplicitlyPositive = str[startIndex] === '+';
|
||||
|
||||
if (isExplicitlyPositive || isNegative) {
|
||||
startIndex += 1;
|
||||
}
|
||||
|
||||
let foundInsignificantZero = false;
|
||||
|
||||
for (; startIndex < str.length && str[startIndex] === '0'; ++startIndex) {
|
||||
foundInsignificantZero = true;
|
||||
}
|
||||
|
||||
if (!foundInsignificantZero) {
|
||||
return isExplicitlyPositive ? str.slice(1) : str;
|
||||
}
|
||||
|
||||
return `${isNegative ? '-' : ''}${str.length === startIndex ? '0' : str.slice(startIndex)}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* Returns false for an string that contains invalid characters for its radix, else returns the original string.
|
||||
* @param str - The textual representation of the Long
|
||||
* @param radix - The radix in which the text is written (2-36), defaults to 10
|
||||
*/
|
||||
export function validateStringCharacters(str: string, radix?: number): false | string {
|
||||
radix = radix ?? 10;
|
||||
const validCharacters = '0123456789abcdefghijklmnopqrstuvwxyz'.slice(0, radix);
|
||||
// regex is case insensitive and checks that each character within the string is one of the validCharacters
|
||||
const regex = new RegExp(`[^-+${validCharacters}]`, 'i');
|
||||
return regex.test(str) ? false : str;
|
||||
}
|
||||
Reference in New Issue
Block a user