JavaScript通过RegExp实现客户端验证处理程序

作者:青柠时间:2026-10-28 01:19:20浏览:276

本文介绍如何在ASP.NET MVC环境下使用JavaScript和RegExp进行客户端输入验证。通过onkeypress事件捕获按键,兼容IE与Firefox获取KeyChar,利用String.fromCharCode转换字符。示例涵盖数字、中文及邮箱格式的正则匹配,展示RegExp构造函数与直接量写法,以及test方法的实际应用。

1. 使文本框仅允许输入数字,使用 asp.net mvc3.0 的文本框控件

数字输入验证实现

代码如下:

 
@Html.TextBox("txt", null, new {@style="width:300;", onkeypress="return RegValidateIsDigit(event)" })

在文本框中注册了onkeypress事件,当用户在文本框中输入字符并按下键盘时,将触发该JavaScript函数。


代码如下:

 
<script type="text/javascript">
function RegValidateIsDigit(e) {
var KeyChar;
debugger;
////判断浏览器
if (window.event) //IE
{ 
KeyChar = e.keyCode;
} 
else if (e.which)///FireFox等
{ 
KeyChar = e.which;
} 
var str = String.fromCharCode(KeyChar); ///通过UniCode编码来查找相应的字符
return regIsDigit(str);
} 
function regIsDigit(fData) {
///定义正则进行匹配
var reg = new RegExp("^[0-9]$");
return (reg.test(fData));
} 
</script>

首先判断浏览器类型以进行兼容性处理。然后通过String.fromCharCode(KeyChar)获取对应的字符。


最后在regIsDigit函数中


定义正则表达式进行匹配


代码如下:

 
var reg = new RegExp("^[0-9]$");

因为匹配数值0-9,所以也等同于\d,即


代码如下:

 
var reg = new RegExp("\\d$");

正则表达式直接量被定义为包含在一对斜杠(/)之间的字符。因此,JavaScript代码可能如下所示:


代码如下:

 
var reg=/\d$/;

此处使用了test函数来检查指定的字符串是否存在。常用的其他正则相关函数还有exec、match、search、replace和split等。


理解第一个示例后,只需套用相应的正则表达式即可实现其他验证功能。


2. 文本框仅允许输入中文

中文输入验证实现

代码如下:

 
function RegValidateIsChinese(str) {
//var reg = new RegExp("^[\u4e00-\u9fa5]+$");
var reg = /^[\u4E00-\u9FA5]+$/;
var str=document.getElementById("text").value;
return (reg.test(str));
} 

RegValidateIsChinese("输入的字符串") 若为汉字则返回true,若不全是汉字则返回false


3. 判断邮箱输入格式

邮箱格式验证实现

代码如下:

 
function RegValidateIsEmail(str) {
//var reg = /^([a-zA-Z0-9_-])+@@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
var reg=/^\w+((-\w+)|(\.\w+))*@@{1}\w+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig;
if (reg.test(str)) {
alert("是邮箱");
} 
else {
alert("格式不对");
} 
} 

两个定义初步测试均可使用。

作者最新文章