JS之正则表达式及简单表单验证

5 篇文章 0 订阅

一:正则表达式语法规则

1:[abc]                a,b或者c任何一个

2:[a-zA-Z]           a到z或A到Z任何一个

3:\d                     表示数字[0-9],即0到9任意一个

4:X{n}                 表示有n个X

5:X{n,}                表示有n个以上X

6:X{n,m}             表示有n到m范围之内个X

7:\D                    表示非数字

8:\s                     表示空白字符(如空格,\t制表符,\n换行符)

9:\S                    表示非空白字符

10:\w                  表示单词字符:[a-zA-Z_0-9]

11:\W                 表示非单词字符

补充中文:[\u4e00-\u9fa5]

二:正则的常用表达(/^$/)

1:用户名只能为字母,长度为6-12位:            [a-zA-Z]{6,12} 
2:密码只能为数字,长度至少为6位:             [0-9]{6,},\\d{6,} 
3:手机号校验:                                                [1][3578]\\d{9}
4:邮箱校验:                                                   [a-zA-Z_ 0-9]{3,}@([a-zA-Z]+|\\d+)\.[a-zA-Z]+)+

三:简单例子

<form action="#" method="get">
	<ul>
		<li>
			<label>用户名: </label>
			<input type="text" name="username" id="username" required="required" onblur="checkUser()" />
			<span id="message1"></span>
		</li>
		<li>
			<label>密 码: </label>
			<input type="password" name="password" id="password" required="required" onblur="checkPassword()" />
			<span id="message2"></span>
		</li>
		<li>
			<label>确认密码:</label>
			<input type="password" name="passwordTwo" id="passwordTwo" required="required" onblur="checkPasswordTwo()" />
			<span id="message3"></span>
		</li>
		<li>
			<label>用户类型:</label>
			<select name="userType">
				<option value="0">管理员</option>
				<option value="1">其他</option>
			</select>
		</li>
		<li>
			<label>性别:  </label>
			<input type="radio" name="sex" value="male" checked="checked" />男
			<input type="radio" name="sex" value="female" />女
		</li>
		<li>
			<label>兴趣爱好:</label>
			<input type="checkbox" name="hobby" value="reading" />阅读
			<input type="checkbox" name="hobby" value="music" />音乐
			<input type="checkbox" name="hobby" value="sport" />运动
		</li>
		<li>
			<label>电子邮件:</label>
			<input type="email" name="email" id="email" value="" onblur="checkEmail()" />
			<span id="message4"></span>
		</li>
		<li>
			<label>自我介绍:</label>
			<textarea name="intro" rows="5" cols="40"></textarea>
		</li>
		<li>
			<input type="submit" id="sub" value="提交" onclick="return checkAll()" />
			<input type="reset" value="重置" onclick="resetTheAll()" />
		</li>
	</ul>
</form>
<script type="text/javascript">
	function checkUser() {
		var user = document.getElementById("username");
		var regs = /^[a-zA-Z0-9\u4e00-\u9fa5_]{6,18}$/;
		var message = document.getElementById("message1")
		if(regs.test(user.value)) {
			message.style.color = "greenyellow";
			message.innerHTML = "✔";
			return true;

		} else {
			message.style.color = "red";
			message.innerHTML = "请输入6-18位中英文用户名!";
			return false;
		}
	}

	function checkPassword() {
		var pass = document.getElementById("password");
		var regs = /^[a-zA-Z0-9_]{6,12}$/;
		var message = document.getElementById("message2")
		if(regs.test(pass.value)) {
			message.style.color = "greenyellow";
			message.innerHTML = "✔";
			return true;
		} else {
			message.style.color = "red";
			message.innerHTML = "请输入6-12位中英文密码!";
			return false;
		}
	}

	function checkPasswordTwo() {
		var pass1 = document.getElementById("password").value;
		var pass2 = document.getElementById("passwordTwo").value;
		var message = document.getElementById("message3")
		if(pass1 == pass2 && pass2 != "") {
			message.style.color = "greenyellow";
			message.innerHTML = "✔";
			return true;
		} else {
			message.style.color = "red";
			message.innerHTML = "密码不一致";
			return false;
		}
	}

	function checkEmail() {
		var reg = /\w+@\w+\.\w+/;
		var email = document.getElementById("email").value;
		var message = document.getElementById("message4");
		if(reg.test(email)) {
			message.style.color = "greenyellow";
			message.innerHTML = "✔";
			return true;
		} else {
			message.style.color = "red";
			message.innerHTML = "邮箱格式错误,必须包含 @ 和 . ";
			return false;
		}
	}
	//提交所有
	function checkAll() {
		if(checkUser() && checkPassword() && checkPasswordTwo() && checkEmail()) {
			return true;
		} else {
			alert("请完善信息")
			return false;
		}
	}
	//重置所有(当点击重新填写时 提交按钮 恢复不可用状态)
	function resetTheAll() {
		//清除提示信息
		var spans = document.getElementsByTagName("span");
		for(var i = 0; i < spans.length; i++) {
			spans[i].innerHTML = "";
		}

	}
</script>

  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue.js 是一个流行的 JavaScript 框架, 用于构建用户界面。要在 Vue.js 中使用正则表达式验证密码强度,可以在组件中使用 `v-model` 指令绑定密码输入框的值,并在计算属性或方法中编写正则表达式来验证密码。 下面是一个简单的示例代码,演示了如何在 Vue.js 中使用正则表达式验证密码强度: ```html <template> <div> <input type="password" v-model="password" placeholder="Enter password"> <button @click="validatePassword">Validate</button> </div> </template> <script> export default { data() { return { password: '' }; }, methods: { validatePassword() { // 正则表达式模式 - 至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,长度为6-20个字符 const pattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{6,20}$/; if (pattern.test(this.password)) { alert('密码强度符合要求!'); } else { alert('密码强度不符合要求!'); } } } }; </script> ``` 在上述代码中,我们使用 `v-model` 指令将密码输入框的值绑定到 Vue 实例的 `password` 属性上。然后,我们在 `validatePassword` 方法中使用正则表达式模式来验证密码强度。如果密码符合要求,就弹出一个成功的提示框;否则,弹出一个错误的提示框。 这只是一个简单的示例,可以根据实际需求调整正则表达式模式和验证逻辑。请记住,在客户端验证密码强度只是一种基本的验证方法,服务器端验证也是必不可少的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值