Javascript 验证html中的用户名
我希望用户名后面的文本框只接受字母或数字或它们的组合。如果用户输入字母或数字以外的任何内容,则单击按钮时应显示警报对话框。我的代码是:Javascript 验证html中的用户名,javascript,Javascript,我希望用户名后面的文本框只接受字母或数字或它们的组合。如果用户输入字母或数字以外的任何内容,则单击按钮时应显示警报对话框。我的代码是: <html> <body> <form name="f1"> username <input type="text" name="tb1"><br> <input type="button" value="validate" onclick="val()"> </form
<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()
{
if(document.f1.tb1.value==“”)
警报('输入用户名!');
}
谁能告诉我解决办法吗 在
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
的字符串是否有a-z、a-z和0-9以外的内容。如果是,则会发出警报。如果您愿意接受下划线作为有效字符,则If
将变得更简单:
if(/[\W]/.test(document.f1.tb1.value))
\w
是表示所有数字、字符和下划线的快捷方式。[^…]
语法的意思是“任何与此列表不匹配的字符。\W
实际上是[^\W]
的快捷方式,并查找任何不是a-Z、a-Z、0-9和!
根据您的评论进行编辑
如果只想接受字母字符,只需测试a-z,而不是在表达式中添加0-9:
if(/[^a-zA-Z]/.test(document.f1.tb1.value))
这将检查document.f1.tb1.value的值
以查看它是否包含非字母的内容,即a-z和a-z之外的内容
有很多关于正则表达式的文档。一旦你理解了这个概念,我就用它作为参考。这个怎么样
编辑:
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!');
}
你需要看看
RegExp
为什么要费心处理+
?只要你有一个字符,测试就已经失败了。另外,解释也很好。你的代码是做什么的?用户如何从中学习,而不是复制粘贴?@Scott Mermelstein我检查它以返回false;首先,因为我没有证书如果将null传递给,则会发生什么情况。test
检查如果(!document.f1.tb1.value)
检查真实性。它检查document.f1.tb1是否为null、是否未定义、是否为“”、是否为0以及是否为false。(说到这里,如果0是有效用户名,该检查将不接受。)@Scott Mermelstein,是的,你是对的,这是一个严重的错误,我需要检查它是否等于null
或未定义
,我犯了很多次错误。真实性很有用,但很容易忘记。如果我想只接受字母或字母和数字的组合,那么我该怎么办de I已列出显示了如何检查它是否只按字母或数字排列。我添加了一个编辑,显示了如何检查它是否只按字母排列。对于A-Z、A-Z、0-9和u,您已指定使用以下语句:if(/[\W]/.test(document.f1.tb1.value))。如果我想包括“”,那么我应该使用什么?if(/[^\W\]/.test
…就是您所需要的。这是“任何不是字母、数字或的东西。”我在前面放了一个\,因为。是正则表达式中的一个特殊字符。如果我想检查任何字符串中的“.”和“\”,那么RegExp是什么?