JS之正则表达式

一、正则表达的目标:

  1、使用表单事件和脚本函数实现表单验证

  2、使用String对象和文本框控件常用属性和方法实现客户端验证

二、什么需要表单验证:

  1、表单元素是否为空

  2、用户名和密码

  3、E-mail地址是否正确

  4、身份证号是否是数字

三、表单验证思路:

  1、获得表单元素值

  2、使用JavaScript的一些方法对数据进行判断

  3、当表单提交时,对获取的数据进行验证

四、正则表达式:是一个描述字符模式的对象

  第一步:定义正则表达式

  第二步:表达式的模式

  

  1、定义正则表达式:

简单模式:

  普通方式:var reg=/表达式/附加参数

      例:var reg=/white/;          里面必须是white

        var reg=/white/g;        g是全局匹配,找到表单字符串里所有的white

  构造方式:var reg=new RegExp("表达式","附加参数");

       var reg=new RegExp("white");

       var reg=new RegExp("white","g");

复杂模式:

RegExp常用符号:

这些符号都如何使用呢?下面来看几个例子:

结果为:

五、RegExp方法验证:

正则表达式写出来后,如何验证呢?用test()、exec()方法

test()方法检索字符串中的指定值,返回值时true或false

exec()方法检索字符串中的指定值,返回值是被找到的值,如果没有发现匹配,则返回null

1、test()

1 var reg=/a/i;     //附加参数为"i",意思为:忽略大小写ignoreCase
2             var content=prompt(‘请输入内容:‘);
3             //验证
4             alert(reg.test(content)?‘验证通过‘:‘验证失败‘)    //content里必须包含a  

2、exec()

 1         var reg1=/a/g;
 2         //附加参数为"g",意思为global:全局匹配,匹配到第一个"a"时,不停止,继续往后匹配,直到字符串完
 3             var content1=‘You are an old driver‘;
 4             while(true){
 5                 var b=reg1.exec(content1);    //若content1里有"a",则返回"a";否则返回"null"
 6                 alert(b)
 7                 if(!b){
 8                     break;
 9                 }
10             }

最后写一个练习题:验证一个注册页面

代码如下:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>登录验证</title>
 6         <script type="text/javascript">
 7             window.onload=function(){
 8                 //获取需要验证的表单内容
 9                 //JS事件驱动进行表单验证
10                 //验证规则
11 //var name=document.getElementById(‘name‘).value;  // 这一行必须放在onload点击事件里面,否则name值为空。
12 //因为这一行赋值在页面加载完已经赋值了,然而此时表单并未提交
13                 var login=document.getElementById(‘login‘);
14                 login.onclick=function(){
15                     var name=document.getElementById(‘name‘).value;
16                     var pwd1=document.getElementById(‘pwd1‘).value;
17                     var riqi=document.getElementById(‘riqi‘).value;
18                     var reg1=/^[A-Za-z][A-Za-z0-9]{3,15}$/;
19                     if(!reg1.test(name)){
20                         alert(‘用户名验证失败‘)
21                     }
22                     else{
23                         alert(‘用户名验证成功‘)
24                     }
25                     var reg2=/^[a-z\d]{4,10}$/i;
26                     if(reg2.test(pwd1)==false){
27                         alert(‘密码验证失败‘)
28                     }
29                     else{
30                         alert(‘密码验证成功‘)
31                     }
32                     var reg3=/^(19\d{2}|200\d)-(1[0-2]|0[1-9])-(0[1-9]|[1-2]\d|3[0-1])$/;
33                     if(reg3.test(riqi)==false){
34                         alert(‘出生日期验证失败‘)
35                     }
36                     else{
37                         alert(‘出生日期验证成功‘)
38                     }
39                 }
40
41             }
42         </script>
43     </head>
44     <body>
45         <from action="" method="post">
46             <table cellspacing="0px">
47                 <tr>
48                     <td>邮箱:</td>
49                     <td>
50                         <input type="text" id="mail" />
51                     </td>
52                 </tr>
53                 <tr>
54                     <td>登录用户名:</td>
55                     <td>
56                         <input type="text" id="name"/>
57                     </td>
58                 </tr>
59                 <tr>
60                     <td>显示名称:</td>
61                     <td>
62                         <input type="text" />
63                     </td>
64                 </tr>
65                 <tr>
66                     <td>密码:</td>
67                     <td>
68                         <input type="password" id="pwd1" />
69                     </td>
70                 </tr>
71                 <tr>
72                     <td>确认密码:</td>
73                     <td>
74                         <input type="password" id="pwd2" />
75                     </td>
76                 </tr>
77                 <tr>
78                     <td>出生日期:</td>
79                     <td>
80                         <input type="date" id="riqi"/>
81                     </td>
82                 </tr>
83
84                 <tr>
85                     <td colspan="2" align="center">
86                         <input type="button" value="注册" id="login"/>
87                     </td>
88                 </tr>
89             </table>
90
91         </from>
92     </body>
93 </html>
时间: 2024-08-10 01:59:49

JS之正则表达式的相关文章

js 常用正则表达式表单验证代码

js 常用正则表达式表单验证代码 js 常用正则表达式表单验证代码,以后大家就可以直接使用了. 正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下:测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证.替换文本.可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字.根据模式匹配从字符串中提取一个子字符串.可以用来在文本或输入字段中

JS 常用正则表达式

匹配负整数的正则表达式: -[0-9]*[1-9][0-9]* 匹配整数的正则表达式: -?\\d+ 匹配非负浮点数(正浮点数 + 0)的正则表达式: \\d+(\\.\\d+)? 匹配正浮点数的正则表达式: (([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)) 匹配非正浮点数(负浮点数 + 0)的正则表达式: ((-\\d+(\\.\\d+)?)|(0+(\\.0+)?)) 匹配负浮点数的

Js用正则表达式验证字符串

js 常用正则表达式表单验证代码 作者: 字体:[增加 减小] 类型:转载 js 常用正则表达式表单验证代码,以后大家就可以直接使用了. 正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证. 替换文本.可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字. 根据模式匹配从字符

Js使用正则表达式判断邮箱格式

1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 4 <title>验证Email是否正确</title> 5 <script language="javascript"> 6 function checkemail(str){ 7 //在Jav

js的正则表达式

不错的JS验证~~~~~~~~~~~~~~~~~~~~~~~~~用途:校验ip地址的格式输入:strIP:ip地址返回:如果通过验证返回true,否则返回false: */function isIP(strIP) {if (isNull(strIP)) return false;var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/g //匹配IP地址的正则表达式if(re.test(strIP)){if( RegExp.$1 <256 && RegExp.$2&

js中 正则表达式

正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下: 测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证. 替换文本.可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字. 根据模式匹配从字符串中提取一个子字符串.可以用来在文本或输入字段中查找特定文字. 基本语法 在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下

JS 利用正则表达式替换字符串

JS 利用正则表达式替换字符串 博客分类: JavaScript 学习资料 Java代码 收藏代码 JS 利用正则表达式替换字符串 var data = "123123,213,12312,312,3,Caat,cat,dsfsdfs,"; var reCat = /\bc([a-z]|[A-Z]|[0-9])*t\b/ig; //•g(全文查找):•i(忽略大小写):•m(多行查找) var res = data.replace(reCat,"AAA"); 输出:

js常用正则表达式2

字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*". ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a&quo

JS的正则表达式简介

1.JS的正则表达式 1.1 简介 JS的正则表达式比较简单,总体上只分为两个功能:一个是test--用于匹配字符串是否符合规定的正则表达式规则:另外一个是exec--用于获取匹配到的数据. 1.2 test介绍 我们利用/.../生成正则表达式的对象,例如我们想匹配包含数字0-9可以这样定义: rep = /\d+/ 然后调用test方法即可: rep.test('abcd123vdsd345'); 结果为: 注意默认情况下这个字符串只要包含数字就返回true. 但是如果我们想匹配字符串中必须

JS利用正则表达式校验手机号

JS利用正则表达式校验手机号 绪 由于项目需求,需要在前端实现手机号码的校验.当然了,对于基本的格式校验应该放在客户端进行,而不需要再将待校验的手机号发送至服务端,在服务端完成校验,然后将校验结果返回给客户端,客户端根据返回的结果再进行进一步的处理.如此反而复杂化了处理过程. 其实,处于安全考虑,应该在服务端进行二次校验.以下为在客户端的JS中校验手机号码格式的代码: 源代码 function validatemobile(mobile)   {   if(mobile.length==0)