34 lines
907 B
JavaScript
34 lines
907 B
JavaScript
function validateTagName(name) {
|
|
if (!name || !name.trim()) {
|
|
return { valid: false, error: 'Tag name is required' };
|
|
}
|
|
|
|
const trimmedName = name.trim();
|
|
|
|
// Check for invalid characters that can break URLs or cause issues
|
|
const invalidChars = /[#%&{}\\<>*?/$!'":@+`|=]/;
|
|
if (invalidChars.test(trimmedName)) {
|
|
return {
|
|
valid: false,
|
|
error: 'Tag name contains invalid characters. Please avoid: # % & { } \\ < > * ? / $ ! \' " : @ + ` | =',
|
|
};
|
|
}
|
|
|
|
// Check length limits
|
|
if (trimmedName.length > 50) {
|
|
return {
|
|
valid: false,
|
|
error: 'Tag name must be 50 characters or less',
|
|
};
|
|
}
|
|
|
|
if (trimmedName.length < 1) {
|
|
return { valid: false, error: 'Tag name cannot be empty' };
|
|
}
|
|
|
|
return { valid: true, name: trimmedName };
|
|
}
|
|
|
|
module.exports = {
|
|
validateTagName,
|
|
};
|