首页 > 解决方案 > 在 Go 中使用 unicode 包进行验证?

问题描述

Go 中的 unicode 包提供了 unicode.IsDigit 和 unicode.IsUpper 等函数。这些是否可以安全地用于表单输入验证,特别是密码验证?

在不使用第三方包的情况下,你将如何在 Go 中进行表单验证?据我所知,正则表达式很昂贵,如果可能的话应该避免,这是一个可行的解决方案吗?

这是使用 unicode 包的示例:

https://play.golang.org/p/6XLSqPim54E

标签: validationgounicode

解决方案


我不会说正则表达式很昂贵,如果可能的话应该避免。它是您案例的最佳工具。尽管使用 unicode 包进行密码验证并没有错,但对于其他程序员来说,只使用单个正则表达式可能更具可读性,您可以将所有密码要求写入一个正则表达式。

广告正则表达式性能:您可以在此处 阅读有关 golang 正则表达式实现的性能。我不会关心它,除非您正在实施一个非常关键的性能密集型工具,您可以在其中特别测量正则表达式会减慢您的程序速度。


推荐阅读