JavaScript 正则表达式基础与表单验证实战

作者:异步漫步时间:2026-10-25 23:26:21浏览:583

本文介绍 JavaScript 中正则表达式的常用元字符与量词,并通过完整代码示例演示如何验证手机号、座机号及邮箱格式。包含前端 HTML 表单结构与后端 JS 逻辑,帮助开发者快速掌握前端数据校验技巧。

正则表达式元字符与量词基础

在正则表达式中,元字符用于定义匹配规则,常用的包括以下几种:


• . 匹配除换行符和行结束符以外的任意单个字符;


• \w 匹配字母、汉字、数字及下划线等字符;


• \s 匹配空白字符,包括空格、制表符等;


• \d 匹配数字字符;


• \b 匹配单词边界,即单词开头或结尾的位置;


量词用于指定匹配的次数,常用的有:


• ^n 匹配以 n 开头的字符串;


• n$ 匹配以 n 结尾的字符串;


• n+ 匹配包含至少一个 n 的字符串;


• n* 匹配包含零个或多个 n 的字符串;


• n? 匹配包含零个或一个 n 的字符串;


• n{X} 匹配恰好包含 X 个 n 的序列;


• n{X, Y} 匹配包含 X 到 Y 个 n 的序列;


JavaScript 表单验证实战代码

下面通过具体示例,展示如何利用正则表达式验证手机号码、座机号码以及邮箱地址。


以下是 JavaScript 实现部分的核心代码:


代码如下:

 
function isMobile() {
var mobile = document.getElementById("mobile_phone");
var num = mobile.value;
var reg = /^(13[0-9]|186|188|150|151|158|159|147)\d{8}$/;
if(num == "") {
alert("请输入完整的手机号");
mobile.focus();
return false;
} else if (reg.test(num)) {
alert("输入的手机号格式正确");
} else {
alert("请输入正确的11位手机号码");
mobile.focus();
return false;
} 
} 
function isEmail() {
var email = document.getElementById("email");
var email_value = email.value;
if(email_value == "") {
alert("请输入完整的邮箱");
email.focus();
return false;
} else {
var reg = /^[a-zA-Z0-9](\w)+@(\w)+(\.)+(com|com\.cn|net|cn|net\.cn|org|biz|info|gov|gov\.cn|edu|edu\.cn)$/;
if(reg.test(email_value)) {
alert("输入的邮箱格式正确");
} else {
alert("请输入正确的邮箱格式");
email.focus();
return false;
} 
} 
} 
function isPhone() {
var phone = document.getElementById("phone");
var phone_value = phone.value;
if(phone_value == "") {
alert("请输入完整的座机号码");
phone.focus();
return false;
} else {
var reg = /^[(]?0\d{2,3}[)]?\s*[-]?\s*\d{7,8}$/; //010-87989898 01098989898 (0712)8989898 010 - 23343434 这些格式的座机号码都满足
if(reg.test(phone_value)) {
alert("输入的座机号码正确");
} else {
alert("输入的座机号码格式错误");
phone.focus();
return false;
} 
} 
} 

HTML 表单结构示例

HTML部分代码:


代码如下:

 
<p>
<label for="mobile_phone">手 机</label>
<input type="text" id="mobile_phone", name="mobile_phone" value="15107105287" />
<input type="button" value="validate" onclick="isMobile()" />
</p>
<p>
<label for="phone">座 机</label>
<input type="text" id="phone" name="phone" value="027-87767676" />
<input type="button" value="validate" onclick="isPhone()" />
</p>
<p>
<label for="email">邮 箱</label>
<input type="" id="email" name="email" value="zhangchen2397@126.com" />
<input type="button" value="validate" onclick="isEmail()" />
</p>
作者最新文章