使用者名稱第一個字元必須為 0-9、a-z、A-Z。
protected void Button3_Click(object sender, EventArgs e)
{
string input = TextBox1.Text.Trim();
if (string.IsNullOrEmpty(input))
{
ShowAlert("使用者名稱不可為空!");
return;
}
char first = input[0];
bool isValid = char.IsLetterOrDigit(first); // 內建方法涵蓋 0-9, a-z, A-Z
ShowAlert(isValid ? "合法使用者名稱,可使用!" : "第一個字元必須為英數字!");
}
private void ShowAlert(string msg)
{
ClientScript.RegisterStartupScript(GetType(), "alert", $"alert('{msg.Replace("'", "\\'")}');", true);
}
char.IsLetterOrDigit 替代手工字元陣列比對,程式碼簡潔、效能更好、支援完整 Unicode 字母數字。RegisterStartupScript 程式碼。pattern="[A-Za-z0-9].*" 屬性於 <input>,提供即時視覺回饋。
if (!Regex.IsMatch(input, @"^[A-Za-z0-9]"))
ShowAlert("第一個字元必須為英數字!");
正則優勢:易於擴充規則(如長度、允許底線、禁止連續特殊字元等)。