我有一份表格,我需要输入字母和数字。我见过的所有解决方案都只允许字母和数字,但不需要两者兼而有之。
我有这个正则表达式:/^[0-9a-zA-Z]+$/
允许其中之一。我如何才能做到这一点,即文本必须至少包含一个数字。
谢谢我的 friend 们。
盖伊
最佳答案
为了解决这个问题,我们需要至少 2 个字符,一个字母和一个数字。在代码中,我们从字母数字字符的可能性开始。我没有使用 \w
因为它也允许 _
字符。在该组中,我们有一个 or 来查找数字之前的字母,或者字母之前的数字。然后,在该组之后,我们要求如果存在任何内容,它也是字母数字。
/^[A-Za-z0-9]*([A-Za-z][0-9]|[0-9][A-Za-z])[A-Za-z0-9]*$/i
作为建议,在验证表单时最好使用服务器端语言作为前线防御,而不是仅使用 Javascript 方法。原因:
- 有人可以禁用 JavaScript
- 需要保护服务器免受恶意攻击(SQL 或 XSS 注入(inject))
- 有人可以通过直接链接到处理程序来完全绕过您的表单(如果您不需要有效的引荐来源网址)
- 某些浏览器(例如 Lynx)不使用 Javascript,因此对于需要使用屏幕阅读设备的用户来说并不友好
关于javascript - 使用 JavaScript 要求表单字段中包含字母和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17248022/