37 lines
844 B
Go
37 lines
844 B
Go
package utils
|
|
|
|
import (
|
|
"regexp"
|
|
"strings"
|
|
)
|
|
|
|
// NormalizeTaiwanMobile 標準化號碼並驗證是否為合法台灣手機號碼
|
|
func NormalizeTaiwanMobile(phone string) (string, bool) {
|
|
// 移除空格
|
|
phone = strings.ReplaceAll(phone, " ", "")
|
|
|
|
// 移除 "+886" 並將剩餘部分標準化
|
|
if strings.HasPrefix(phone, "+886") {
|
|
phone = strings.TrimPrefix(phone, "+886")
|
|
if !strings.HasPrefix(phone, "0") {
|
|
phone = "0" + phone
|
|
}
|
|
}
|
|
|
|
// 正則表達式驗證標準化後的號碼
|
|
regex := regexp.MustCompile(`^(09\d{8})$`)
|
|
if regex.MatchString(phone) {
|
|
return phone, true
|
|
}
|
|
|
|
return "", false
|
|
}
|
|
|
|
// IsValidEmail 驗證 Email 格式的函數
|
|
func IsValidEmail(email string) bool {
|
|
// 定義正則表達式
|
|
regex := regexp.MustCompile(`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`)
|
|
|
|
return regex.MatchString(email)
|
|
}
|