答案:通过net/http包解析表单,使用自定义Validator结构体封装空值、长度及正则校验逻辑,实现轻量级表单验证。

在Golang中实现简单的表单验证功能,不需要引入复杂的框架也能完成。核心思路是接收HTTP请求中的表单数据,手动检查字段是否为空、格式是否正确,并返回适当的错误信息。下面介绍一种轻量、实用的实现方式。
使用net/http包处理POST请求,调用r.ParseForm()解析表单内容。之后可以通过r.Form.Get("field")获取字段值。
示例代码:
func loginHandler(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
// 返回登录页面
fmt.Fprintf(w, `
<form method="post">
用户名: <input type="text" name="username"><br>
密码: <input type="password" name="password"><br>
<button type="submit">登录</button>
</form>
`)
return
}
if r.Method == "POST" {
r.ParseForm()
username := r.Form.Get("username")
password := r.Form.Get("password")
// 开始验证
var errors []string
if username == "" {
errors = append(errors, "用户名不能为空")
}
if password == "" {
errors = append(errors, "密码不能为空")
}
if len(errors) > 0 {
// 返回错误信息
w.WriteHeader(http.StatusBadRequest)
for _, e := range errors {
fmt.Fprintf(w, "<p style='color:red;'>%s</p>", e)
}
fmt.Fprintf(w, "<a href=''>返回</a>")
} else {
fmt.Fprintf(w, "登录成功,欢迎 %s!", username)
}
}
}
为了避免重复写判断空值的代码,可以写一个简单的验证函数,返回错误列表。
立即学习“go语言免费学习笔记(深入)”;
例如:
type Validator struct {
Errors []string
}
func (v *Validator) Required(field, value string) {
if value == "" {
v.Errors = append(v.Errors, field+"不能为空")
}
}
func (v *Validator) MinLength(field, value string, n int) {
if len(value) < n {
v.Errors = append(v.Errors, field+"至少需要%d个字符", n)
}
}
使用方式:
v := &Validator{}
v.Required("用户名", username)
v.Required("密码", password)
v.MinLength("密码", password, 6)
if len(v.Errors) > 0 {
for _, e := range v.Errors {
fmt.Fprintf(w, "<p style='color:red;'>%s</p>", e)
}
return
}
对于邮箱或数字类字段,可以借助正则表达式进行格式校验。
比如验证邮箱:
import "regexp"
func isValidEmail(email string) bool {
pattern := `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`
return regexp.MustCompile(pattern).MatchString(email)
}
然后在验证逻辑中加入:
if !isValidEmail(email) {
errors = append(errors, "邮箱格式不正确")
}
基本上就这些。通过ParseForm获取数据,配合简单的条件判断和正则表达式,就能实现基本的表单验证。不复杂但容易忽略的是:一定要在服务端做验证,前端校验可被绕过,不能替代后端检查。
以上就是Golang如何实现简单的表单验证功能的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号