JavaScript表单及正则表达式验证实例代码

 更新时间:2025年07月21日 09:38:24   作者:风中飘爻  
正则表达式在JavaScript中可是个强大的工具,能帮助我们进行复杂的字符串匹配、查找和替换,这篇文章主要介绍了JavaScript表单及正则表达式验证的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

今天我要介绍的是在JavaScript中关于表单验证内容的知识点介绍:

关于表单验证,我接下来则直接将内容以及效果显示出来并作注解,这样可以清晰看见这个表达验证的妙用:

<form id="ff" action="https://www.baidu.com">
			<h1>用户登录</h1>
			账号:<input type="text" id="zh" /> <span></span> <br />
			密码:<input type="password" id="mm" /><span></span> <br />
			<Button>登录</Button>
		</form>

效果:

注:可以看到这是一个非常经典的登录界面的制作,下面我会逐一介绍他们内部的方法使用以及代码显示的效果;

onclick: 点击事件   //ondblclick: 双击事件 // onsubmit: 表单提交事件 // onblur: 失去焦点事件 // onfocus: 获取焦点事件。

注: 这是事件点击使用的方法代码;

表单提交的代码演示:

document.getElementById('ff(自定义)').onsubmit = function() {
				console.log('触发了onsubmit');
				// 获取表单中的账号和密码
				let zh = document.getElementById("zh").value;
				let mm = document.getElementById("mm").value;
				// 判断账号及密码是否为空
				if (zh.length == 0 || mm.length == 0) {
					alert('请输入正确的账号或密码')
                     // 自定义弹出框
					document.querySelector('.mask').style.display = "block";
					return false;
				}
				// 以下结果为true 表允许表单提
				//交到指定页面,反之则不能,且只能实现所输入的结果
				return true;
			}

 注{  return false  }为阻止表单提交,但如果整体代码无错,{ return true }则通过,提交表单。

效果:

账号和密码获取/失去焦点演示:

         // 账号获取焦点事件
			document.getElementById('zh').onfocus = function() {
				// let = zh = this.value;
				this.nextElementSibling.innerHTML = "";
			}
			// 账号失去焦点事件
			document.getElementById('zh').onblur = function() {
				let = zh = this.value;
				let f = zh.length == 0;
				console.log(zh);
				this.nextElementSibling.innerHTML = f ? "×" : "√";
				// this.nextElementSibling.style.display=f?"block":"none";
 			}
            // 密码获取焦点事件
			document.getElementById('mm').onfocus = function() {
				// let = zh = this.value;
				this.nextElementSibling.innerHTML = "";
			}
			// 密码失去焦点事件
			document.getElementById('mm').onblur = function() {
				let = zh = this.value;
				let f = zh.length == 0;
				console.log(zh);
				this.nextElementSibling.innerHTML = f ? "×" : "√";
				// this.nextElementSibling.style.display=f?"block":"none";
			}

 注:注意看账号和密码的代码格式内容,两者设置的自定义不同,并非全部都是一样

效果:

 密码:

注:当内容存在焦点时则有判断,有内容则成立,无内容则错误,不成立,无法进行表单提交

正则表达式:

<!-- 正则表达式是用于对数据格式进行判断 -->
        <!-- 定义正则表达式: var rex = /^\d$\(\d表0-0的数字) -->
        
        <!-- 1.内容(以\开头) -->
        <!-- \d:表0-9的数字 -->
        <!-- \w:表0-9a-zA-Z_ -->      (非:不是,表示否定之意,这里注意)
        <!-- \D:表非0-9的数字 -->
        <!-- \W:表非0-9a-zA-Z -->
        <!-- .表任意一个单个字符 -->
        
        <!-- 2.字符出现速度 -->
        <!-- ?表0 or 一次 -->
        <!-- +表一次或者多次 -->
        <!-- *表0此或多次 -->
        <!-- \d{5}表五个数字 -->
        <!-- \d{5,10}表至低五个,至高十个 -->

 例:

// 例一:
			var rex = /^[A-Z]{1}\w{5,11}$/
			 console.log(rex.test('Zking1234'));

效果:

 注:开头小写不成立,不满足;

例:

// // QQ号案例
			1184995259@qq.com
			 var rex1 = /^\d{5,12}@qq.com$/
			 console.log(rex.test('1136889226@qq.com'));

注:后面的  @qq.com  为固定值

以正则表达式为方法的登录界面:

注:(效果与表单验证同理,但是在其基础上用正则表达式的方式进行使用。)

<form id="ff" action="">
			<h1>用户登录</h1>
			账号:<input type="text" id ="zh" /> <span></span> <br />
			密码:<input type="text" id="mm" /><span></span> <br />
			<Button>登录</Button>
		</form>
		<input type="text" id ="mm1"  /><span></span>

document.getElementById("ff").onsubmit=function(){
				// 定义账号的验证规则
				var rex1 = /^[a-z]{5,10}$/
				// 定义密码 
				var rex2 = /^[a-z0-9A-Z.]{5,10}$/
				
				var username = rex1.test(zh.value);
				console.log(usernam);
				if(username){
					zh.nextElementSibling.style="color:blue";
					zh.nextElementSibling.innerHTML="对";
				}else{
					zh.nextElementSibling.style="color:green";
					zh.nextElementSibling.innerHTML="错";
				}
				var password = rex2.test(mm.value);
				console.log(password);
				if(password){
					mm.nextElementSibling.style="color:blue";
					mm.nextElementSibling.innerHTML="对";
				}else{
					mm.nextElementSibling.style="color:green";
					mm.nextElementSibling.innerHTML="错";
				}
				return username&&password;
			}

注:关键点:return username&&password;  

效果:

 注:未输入内容时的效果;

注:输入内容与为输入内容时的对照。

密码安全级别强度验证:

document.getElementById('mm1').onkeyup=function(){
			let c = 0;
			var rex1 = /^.*\d.*$/;  //包含数字
			var rex2 = /^.*[a-z].*$/; //包含字母
			var rex3 = /^.*[A-Z].*$/; //包含大写字母
			var rex4 = /^.*[@.].*$/; //包含特殊符号
			let m = this.value;
			if(rex1.test(m)){
				c++;
			}
			if(rex2.test(m)){
				c++;
			}
			if(rex3.test(m)){
				c++;
			}
			if(rex4.test(m)){
				c++;
			}
			let arr=['弱','中等','强','超强']
			if(m.length==0){
				this.nextElementSibling.innerHTML="";
			}else{
				this.nextElementSibling.innerHTML=arr[c-1];
			}
			
		}

效果:

释义

let arr=['弱','中等','强','超强']
			if(m.length==0){
				this.nextElementSibling.innerHTML="";
			}else{
				this.nextElementSibling.innerHTML=arr[c-1];   《==
			}

注:c-1 由强至弱反向,由弱至强正向,

总结:希望本篇有关于JavaScript表单验证和正则表达式的知识点内容能对你带来一定的帮助,同时非常感谢各位大佬们的点赞与支持,咱们下一篇不见不散。

总结

到此这篇关于JavaScript表单及正则表达式验证的文章就介绍到这了,更多相关JS表单及正则表达式验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解JS中常用的Fetch API

    详解JS中常用的Fetch API

    Fetch API是一种用于进行网络请求的现代JavaScript API,提供了更简洁、强大和灵活的方式来处理异步数据交互,本文主要为大家介绍了js中js中基本用法,感兴趣的同学可以参考下
    2023-07-07
  • 解决bootstrap中modal遇到Esc键无法关闭页面

    解决bootstrap中modal遇到Esc键无法关闭页面

    Bootstrap,来自 Twitter,是目前最受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷。不过在使用的过程中,我们还是会遇到各种小问题,今天我们探讨的就是个人在使用中遇到的一个小BUG的修复。
    2015-03-03
  • js判断浏览器是否支持html5

    js判断浏览器是否支持html5

    这篇文章主要介绍了如何使用js判断浏览器是否支持html5,需要的朋友可以参考下
    2014-08-08
  • 前端双token无感刷新图文详解

    前端双token无感刷新图文详解

    实现token无感刷新对于前端来说是一项十分常用的技术,这篇文章主要给大家介绍了关于前端双token无感刷新的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • js创建对象的方式总结

    js创建对象的方式总结

    这篇文章主要介绍了js创建对象的方式,实例总结了3种常用的创建对象的方式,非常实用,需要的朋友可以参考下
    2015-01-01
  • javascript 循环调用示例介绍

    javascript 循环调用示例介绍

    循环调用,如果已经获取到了结果,则退出循环,下面有个不错的示例,感兴趣的朋友可以尝试操作下
    2013-11-11
  • JavaScript Math对象和调试程序的方法分析

    JavaScript Math对象和调试程序的方法分析

    这篇文章主要介绍了JavaScript Math对象和调试程序的方法,结合实例形式分析了javascript中Math对象生成随机数以及使用alert()、console.log()函数进行错误调试相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • 详解js创建对象的几种方式和对象方法

    详解js创建对象的几种方式和对象方法

    这篇文章主要介绍了详解js创建对象的几种方式和对象方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • js利用prototype调用Array的slice方法示例

    js利用prototype调用Array的slice方法示例

    这篇文章主要介绍了如何利用js的prototype调用Array的slice方法,需要的朋友可以参考下
    2014-06-06
  • JavaScript使用docx-preview和mammoth预览Docx

    JavaScript使用docx-preview和mammoth预览Docx

    这篇文章主要为大家详细介绍了两个库,即docx-preview和mammoth,利用它们,你就能在浏览器中完美预览 Word 文档,甚至连表格样式,页眉页脚都原汁原味地呈现出来,下面我们来看看具体使用步骤吧
    2025-04-04

最新评论