<form action="http://www.cknuckles.com/cgi/echo.cgi" method="get" name="logOn">
User Name:<br />
<input type="text" name="userName" size="25" /><br />
Password:<br />
<input type="password" name="pw" size="25" /><br />
<input type="submit" value="Log In" onClick="validate()"/>
</form>
这就是我的HTML,我已经想出如何只将字母数字数据输入到字段中,但是如何让它只允许以大写字母开头的用户名呢?
<script language="javascript">
</script>
答案 0 :(得分:3)
检查此问题的最简单方法是使用regular expression:
function(str){
return /^[A-Z]/.test(str);
}
当输入字符串以大写字母开头时,返回true
,否则返回false。 (这个特殊的正则表达式 - //字符之间的位 - 表示'匹配字符串的开头,后跟A-Z范围内的任何单个字符。)
就上面的HTML而言,我们需要validate()函数的内容来确定正则表达式匹配的位置。
答案 1 :(得分:0)
在验证功能中,使用正则表达式match
,如下所示:
if (titleString.match(/^[A-Z]/))
<ok>
答案 2 :(得分:0)
var letter = str[0];
if (letter !== letter.toUpperCase()){
//not uppercase!
}
答案 3 :(得分:0)
这将检查输入的用户名是否以大写字母开头,后面跟着5 - 24个字母数字字符。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript">
function validate() {
var the_input = document.getElementById('userName').value;
if (!the_input.match(/^[A-Z]([A-Z]|[a-z]|[0-9]){5,24}$/)) {
alert('Your username must begin with a capital letter, and contain between 6 and 25 alphanumeric characters.');
return false;
} else {
alert('Welcome!');
return true;
}
}
</script>
</head>
<body>
<form action="http://www.cknuckles.com/cgi/echo.cgi" method="get" name="logOn">
User Name:<br />
<input type="text" name="userName" id="userName" size="25" /><br />
Password:<br />
<input type="password" name="pw" size="25" /><br />
<input type="submit" value="Log In" onclick="return validate();"/>
</form>
</body>
</html>
顺便说一句,应该注意的是,如果用户关闭了javascript,这将无效 - 您可能希望将某些服务器端验证(或另外)作为故障安全进行验证。