34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
/** حروف انگلیسی، اعداد و . _ - — بدون فارسی و کاراکترهای غیرمعمول */
|
|
const USERNAME_REGEX = /^[a-zA-Z0-9][a-zA-Z0-9._-]{7,99}$/
|
|
|
|
const USERNAME_MIN_LENGTH = 8
|
|
const USERNAME_MAX_LENGTH = 100
|
|
|
|
const validateUsername = (user_name) => {
|
|
if (!user_name || typeof user_name !== 'string') {
|
|
return 'نام کاربری الزامی است'
|
|
}
|
|
|
|
const trimmed = user_name.trim()
|
|
if (trimmed.length < USERNAME_MIN_LENGTH) {
|
|
return `نام کاربری باید حداقل ${USERNAME_MIN_LENGTH} کاراکتر باشد`
|
|
}
|
|
|
|
if (trimmed.length > USERNAME_MAX_LENGTH) {
|
|
return `نام کاربری نمیتواند بیشتر از ${USERNAME_MAX_LENGTH} کاراکتر باشد`
|
|
}
|
|
|
|
if (!USERNAME_REGEX.test(trimmed)) {
|
|
return 'نام کاربری فقط میتواند شامل حروف انگلیسی، اعداد و کاراکترهای . _ - باشد'
|
|
}
|
|
|
|
return null
|
|
}
|
|
|
|
module.exports = {
|
|
USERNAME_REGEX,
|
|
USERNAME_MIN_LENGTH,
|
|
USERNAME_MAX_LENGTH,
|
|
validateUsername
|
|
}
|