in src/Microsoft.Azure.WebJobs.Host/Executors/HostIdValidator.cs [54:105]
private static bool IsValidQueueName(string name, out string errorMessage)
{
if (String.IsNullOrEmpty(name))
{
errorMessage = "A queue name can't be null or empty";
return false;
}
// A queue name must be from 3 to 63 characters long.
if (name.Length < 3 || name.Length > 63)
{
errorMessage = "A queue name must be from 3 to 63 characters long - \"" + name + "\"";
return false;
}
// The dash (-) character may not be the first or last letter.
// we will check that the 1st and last chars are valid later on.
if (name[0] == '-' || name[name.Length - 1] == '-')
{
errorMessage = "The dash (-) character may not be the first or last letter - \"" + name + "\"";
return false;
}
Char previousCharacter = 'a';
// A queue name must start with a letter or number, and may
// contain only letters, numbers and the dash (-) character
// All letters in a queue name must be lowercase.
foreach (Char ch in name)
{
if (Char.IsUpper(ch))
{
errorMessage = "Queue names must be all lower case - \"" + name + "\"";
return false;
}
if (Char.IsLetterOrDigit(ch) == false && ch != '-')
{
errorMessage =
"A queue name can contain only letters, numbers, and dash(-) characters - \"" + name + "\"";
return false;
}
if (ch == '-' && previousCharacter == '-')
{
errorMessage = "A queue name cannot contain consecutive dash(-) characters.";
return false;
}
previousCharacter = ch;
}
errorMessage = null;
return true;
}