0

我有一个表格,我需要输入字母和数字。我见过的所有解决方案都只允许字母和数字,但不需要两者。

我有这个正则表达式:/^[0-9a-zA-Z]+$/它允许一个或另一个。我怎样才能做到这一点,这意味着文本必须至少包含一个数字。

谢谢我的朋友。

盖伊

4

1 回答 1

3

为了打破这一点,我们需要至少 2 个字符,一个字母和一个数字。在代码中,我们从字母数字字符的可能性开始。我没有使用\w,因为它也允许_字符。在组中,我们有一个 or ,它在数字之前查找字母,或者在字母之前查找数字。然后在我们要求的组之后,如果存在任何东西,它也是字母数字。

/^[A-Za-z0-9]*([A-Za-z][0-9]|[0-9][A-Za-z])[A-Za-z0-9]*$/i

作为建议,在验证表单时最好使用服务器端语言作为前线防御,而不是仅使用 Javascript 的方法。原因:

  1. 有人可以禁用 Javascript
  2. 需要保护服务器免受恶意攻击(SQL 或 XSS 注入)
  3. 有人可以通过直接链接到处理程序来完全绕过您的表单(如果您不需要有效的推荐人)
  4. 像 Lynx 这样的一些浏览器不使用 Javascript,因此对于需要使用屏幕阅读设备的人来说,它对用户不友好
于 2013-06-22T06:42:05.377 回答