JS Javascript用正则表达式验证账号密码是否只包含数字、大小写字母和下划线
一、先上效果
二、简短的代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>正则表达式</title>
</head>
<body>
使用正则表达式的方式来判断输入框中的内容是否为数字、字母、下划线组成。<br><br>
<form action="" id="login">
<p>
<span>username</span>
<span><input type="text" id="un"></span><br>
<span>password</span>
<span><input type="text" id="ps"></span><br>
<input type="button" value="login" onclick="textLogin()">
</p>
</form>
</body>
</html>
<script>
function isValid(str) { return /^\w+$/.test(str); }
function textLogin() {
str = document.getElementById("un").value;
str2 = document.getElementById("ps").value;
if (!isValid(str) || !isValid(str2))
alert("只能输入数字、大小写字母和下划线!");
else
login.submit();//提交表单
}
</script>
三、知识点整理
/xxx/i 是一个正则表达式
其中xxx是表达式主体,由^开头,$结尾,\w代表数字、字母、下划线(各种符号表示的意思可以自行百度查表,太长不赘述)。
+代表至少一个(连起来就是至少一个数字、字母、下划线)。
i是修饰符,不同的修饰符代表同的意思,这里没有用
修饰符
i 忽略大小写
g 查找所有,而非查找至第一个停止
m 执行多行匹配
text()函数用来验证字符串是否匹配正则表达式的模式
用法为xxx.text(str)
function textLogin() {
var patt = /^\w+$/;
var str = document.getElementById("un").value;
var str2 = document.getElementById("ps").value;
if ((patt.exec(str) == null) || (patt.exec(str2) == null))
alert("只能输入数字、大小写字母和下划线!");
else
login.submit();//提交表单
}
exec()则是是另一种方法,用法为xxx.exec(str),
描述:字符串中匹配模式成功返回字符串,否则返回null
注意:这里我把正则表达式赋值给变量,不需要用“”包围,直接用//包围即可