繁体   English   中英

验证HTML中的用户名

[英]Validate username in html

我希望文本框后跟用户名只能接受字母或数字或其组合。如果用户输入除字母或数字以外的任何内容,则单击按钮时应出现警报对话框。我的代码是:

 <html>
 <body>

 <form name="f1">
 username <input type="text" name="tb1"><br>
 <input type="button" value="validate" onclick="val()">
 </form>

 <script>
 function val()
 {
if(document.f1.tb1.value=="")
    alert('Enter username!');
 }
 </script>

 </body></html>

谁能告诉我解决方案?

val函数中使用正则表达式:

function val()
{
    if(document.f1.tb1.value=="")
        alert('Enter username!');
    if(/[^a-zA-Z0-9]/.test(document.f1.tb1.value))
        alert('Username must only consist of letters and numbers')
}

这行代码的作用是查看您传递给test的字符串是否具有az,AZ和0-9以外的其他值。 如果是这样,则会发出警报。 如果您愿意接受下划线作为有效字符,则if变得简单得多:

if(/[\W]/.test(document.f1.tb1.value))

\\w是代表所有数字,字符和下划线的快捷方式。 [^...]语法的意思是“与该列表不匹配的任何字符。 \\W实际上是[^\\w]的快捷方式,它查找不是AZ,az,0-9和_的任何内容。 。

根据您的评论进行编辑

如果只想接受字母字符,则只需测试az而不是在表达式中添加0-9:

if(/[^a-zA-Z]/.test(document.f1.tb1.value))

这将检查document.f1.tb1.value的值以查看其是否包含不是字母的任何内容,即z和AZ之外的任何内容。

关于正则表达式的文档很多。 一旦您理解了这个概念,我将使用MDN作为参考。

这个怎么样 ?:

编辑:

function val()
{
    if(document.f1.tb1.value == null || 
       document.f1.tb1.value == undefined ||
       /[^a-zA-Z0-9]+/.test(document.f1.tb1.value))

      alert('invalid username!');
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM