【发布时间】:2021-06-11 21:27:44
【问题描述】:
我检查了 StackOverflow 并找不到任何可以回答如何在 Go 语言中验证电子邮件的问题。
经过一番研究,我想出了并根据需要解决了。
我有这个 regex 和 Go 函数,它们可以正常工作:
import (
"fmt"
"regexp"
)
func main() {
fmt.Println(isEmailValid("test44@gmail.com")) // true
fmt.Println(isEmailValid("test$@gmail.com")) // true -- expected "false"
}
// isEmailValid checks if the email provided is valid by regex.
func isEmailValid(e string) bool {
emailRegex := regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$")
return emailRegex.MatchString(e)
}
问题在于它接受了我不想要的特殊字符。我尝试使用其他语言的“正则表达式”表达式中的一些,但它在调试时抛出错误 “unknown escape”。
谁能给我一个好的正则表达式或任何适用于 GoLang 的快速解决方案 (pkg)?
【问题讨论】:
-
1.该语言称为 Go。 2. 无论哪种语言,正则表达式和电子邮件地址都不能很好地混合。
标签: email go email-validation