validation - 在 Go 中使用 unicode 包进行验证?
问题描述
Go 中的 unicode 包提供了 unicode.IsDigit 和 unicode.IsUpper 等函数。这些是否可以安全地用于表单输入验证,特别是密码验证?
在不使用第三方包的情况下,你将如何在 Go 中进行表单验证?据我所知,正则表达式很昂贵,如果可能的话应该避免,这是一个可行的解决方案吗?
这是使用 unicode 包的示例:
解决方案
我不会说正则表达式很昂贵,如果可能的话应该避免。它是您案例的最佳工具。尽管使用 unicode 包进行密码验证并没有错,但对于其他程序员来说,只使用单个正则表达式可能更具可读性,您可以将所有密码要求写入一个正则表达式。
广告正则表达式性能:您可以在此处 阅读有关 golang 正则表达式实现的性能。我不会关心它,除非您正在实施一个非常关键的性能密集型工具,您可以在其中特别测量正则表达式会减慢您的程序速度。
推荐阅读
- python-3.x - 如何创建并添加到字典内元组内的列表?
- typescript - 具有来自另一个类的严格属性子集的 Typescript 类
- javascript - 使用 Angular JS 生成动态 HTML id
- asp.net - 在 Visual Basic 中在 2 行上显示字符串
- java - 如何使用时间戳字段按天对实体列表进行分组?
- javascript - 任何证明微任务在渲染之前执行的示例?
- javascript - Uncaught SyntaxError: Missing ) 在参数列表之后,但没有额外的}?
- python - 为什么 py 和 python 给出不同的结果?
- php - PHP 或 HTML 或 CSS 图像从原始最大高度 100 缩放,但将宽度缩放为自动;
- c# - ASP.NET Core 3.1 和 Entity Framework Core:一对多的关系