擅长:python、mysql、java
<p>您需要区分两种情况:</p>
<ol>
<li>如果不在后端使用数据库或任何不可共享的技术,就无法验证值。在这种情况下,您唯一的可能就是在后端检查它(例如通过Ajax调用或通过WebSockets进行通信)。这种验证的例子有:用户名/密码验证或任何需要连接到数据库的东西,一种用无法发布的逻辑检查值的专有算法</li>
<li>您可以验证值,而不必先在后端(数据库)中检查它。在这种情况下,您可以将出于性能原因的检查移动到前端/客户端。您仍然需要保护后端不受不正确值的影响(以防受到攻击、JavaScript损坏等)。此类检查的示例包括电子邮件地址验证、电话号码验证等</li>
</ol>
<p>对于<strong>1</strong>,我只会在提交值或键入时使用与后端的常规连接(如果来自后端的响应足够快)。在</p>
<p>对于<strong>2</strong>,您有几个选项:</p>
<ul>
<li>像在<strong>1</strong>中那样做。在提交或输入期间进行后端检查。不过,这可能会有一些性能问题(主要是在按下键时检查)。如果您在提交后进行检查,则验证不是实时的。在</li>
<li>在前端和后端分别进行验证。如果你在做。建议<strong>不</strong>。您正在前端和后端之间复制代码。尽量避免。在</li>
<li>在前端和后端使用共享验证模式。这是我推荐的验证值的方法。如果使用正则表达式(regex)进行检查,则此验证效果最好。后端有一个模式的Map(),这些模式通过接口提供给前端。模式最初是在加载web应用程序时加载的,然后在应用程序运行时出现。这可以确保后端和前端的验证始终相同。在</li>
</ul>
<hr/>
<p>但是,您的示例包含两个密码的匹配(相等性检查)。这是一个特殊情况,因为不能使用正则表达式检查值的有效性。上述两种情况排除了上述两种解决方案。在</p>
<p>如果您的唯一目的是比较这两个值,我建议复制逻辑。在这种情况下,复制(imho)在某种程度上是合理的,因为检查非常简单,不太可能随着时间的推移而改变。对后端进行检查以完全检查平等性(imho)被夸大了。在</p>