1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
exports.email = email
exports.pw = pw
exports.username = username
var requirements = exports.requirements = {
username: {
length: 'Name length must be less than or equal to 214 characters long',
lowerCase: 'Name must be lowercase',
urlSafe: 'Name may not contain non-url-safe chars',
dot: 'Name may not start with "."',
illegal: 'Name may not contain illegal character'
},
password: {},
email: {
length: 'Email length must be less then or equal to 254 characters long',
valid: 'Email must be an email address'
}
}
var illegalCharacterRe = new RegExp('([' + [
"'"
].join() + '])')
function username (un) {
if (un !== un.toLowerCase()) {
return new Error(requirements.username.lowerCase)
}
if (un !== encodeURIComponent(un)) {
return new Error(requirements.username.urlSafe)
}
if (un.charAt(0) === '.') {
return new Error(requirements.username.dot)
}
if (un.length > 214) {
return new Error(requirements.username.length)
}
var illegal = un.match(illegalCharacterRe)
if (illegal) {
return new Error(requirements.username.illegal + ' "' + illegal[0] + '"')
}
return null
}
function email (em) {
if (em.length > 254) {
return new Error(requirements.email.length)
}
if (!em.match(/^[^@]+@.+\..+$/)) {
return new Error(requirements.email.valid)
}
return null
}
function pw (pw) {
return null
}
|