javascript正则表达式的基本知识

javascript正则表达式的基本知识


1. javascript 正则对象创建和用法

    声明javascript 正则表达式:
     var reCat = new RegExp("cat");
     可以 
     var reCat = /cat/;      //Perl 风格(推荐)


2. 学习最常用的 test exec match search  replace  split 6个方法

   1) test 检查指定的字符串是否存在

       var data = "123123";
       var reCat = /123/gi; //检查字符是否存在  g 继续往下走  i 不区分大小写
       alert(reCat.test(data));  //true
     

   2) exec 返回查询值

       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
       var reCat = /cat/i;
       alert(reCat.exec(data));  //Cat


   3)match 得到查询数组

       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
       var reCat = /cat/gi;
       var arrMactches = data.match(reCat)

       for (var i=0;i < arrMactches.length ; i++) {
            alert(arrMactches[i]);   //Cat  cat
       }


   4) search 返回搜索位置  类似于indexof

       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
       var reCat = /cat/gi;
       alert(data.search(reCat));  //23


   5) replace 替换字符  利用正则替换

       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
       var reCat = /cat/gi;
       alert(data.replace(reCat,"libinqq"));


   6)split 利用正则分割数组

       var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
       var reCat = /,/;
       var arrdata = data.split(reCat);

       for (var i = 0; i < arrdata.length; i++) {
            alert(arrdata[i]);
       }


3. 学习下简单类,负向类,范围类,组合类

       //简单类
       var data = "1libinqq,2libinqq,3libinqq,4libinqq";
       var reCat = /[123]libinqq/gi;
       var arrdata = data.match(reCat);

       for (var i = 0; i < arrdata.length; i++) {
            alert(arrdata[i]);  // 1libinqq 2libinqq  3libinqq
       }

       //负向类
       var data = "alibinqq,1libinqq,2libinqq,3libinqq,4libinqq";  //u0062cf
       var reCat = /[^a123]libinqq/gi;
       var arrdata = data.match(reCat);

       for (var i = 0; i < arrdata.length; i++) {
            alert(arrdata[i]);  //4libinqq
       }

       //范围类
       var data = "libinqq1,libinqq2,libinqq3,libinqq4,libinqq5";  //u0062cf
       var reCat = /libinqq[2-3]/gi;
       var arrdata = data.match(reCat);

       for (var i = 0; i < arrdata.length; i++) {
            alert(arrdata[i]);   // libinqq2  libinqq3
       }

       //组合类
       var data = "a,b,c,w,1,2,3,5";  //u0062cf
       var reCat = /[a-q1-4n]/gi;
       var arrdata = data.match(reCat);

       for (var i = 0; i < arrdata.length; i++) {
            alert(arrdata[i]);  // a b c 1 2 3
       }


4. javascript验证表单时常用

"^-[0-9]*[1-9][0-9]*$"  //负整数

"^-?d+$"    //整数

"^d+(.d+)?$"  //非负浮点数(正浮点数 + 0)

"^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数

"^((-d+(.d+)?)|(0+(.0+)?))$"  //非正浮点数(负浮点数 + 0)

"^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数

"^(-?d+)(.d+)?$"  //浮点数

"^[A-Za-z]+$"  //由26个英文字母组成的字符串

"^[A-Z]+$"  //由26个英文字母的大写组成的字符串

"^[a-z]+$"  //由26个英文字母的小写组成的字符串

"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串

"^w+$"  //由数字、26个英文字母或者下划线组成的字符串

"^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$"    //email地址

"^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$"  //url


function isTrueName(s) {   
var patrn=/^[a-zA-Z]{1,30}$/;   
if (!patrn.exec(s)) return false  
return true  
}  
  
//校验密码:只能输入6-20个字母、数字、下划线 

function isPasswd(s) {   
var patrn=/^(w){6,20}$/;   
if (!patrn.exec(s)) return false  
return true  
}  


//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”   

function isTel(s) {   
//var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?(d){1,12})+$/;   
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;   
if (!patrn.exec(s)) return false  
return true  
}   

//校验手机号码:必须以数字开头,除数字外,可含有“-”   

function isMobil(s) {   
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;   
if (!patrn.exec(s)) return false  
return true  
}   

//校验邮政编码

function isPostalCode(s) {   
//var patrn=/^[a-zA-Z0-9]{3,12}$/;   
var patrn=/^[a-zA-Z0-9 ]{3,12}$/;   
if (!patrn.exec(s)) return false  
return true  
}   

//校验搜索关键字   
function isSearch(s) {   
var patrn=/^[^`~!@#$%^&*()+=|\][]{}:;',.<>/?]{1}[^`~!@$%^&()+=|\][]{}:;',.<>?]{0,19}$/;   
if (!patrn.exec(s)) return false  
return true  
}   
  
function isIP(s) {   
var patrn=/^[0-9.]{1,20}$/;   
if (!patrn.exec(s)) return false  
return true  
}   

正则表达式

^\d+$"  //非负整数(正整数 + 0)   
"^[0-9]*[1-9][0-9]*$"  //正整数    
"^((-\d+)|(0+))$" //非正整数(负整数 + 0)    
"^-[0-9]*[1-9][0-9]*$" //负整数    
"^-?\d+$" //整数    
"^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0)    
"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$"   //正浮点数    
"^((-\d+(\.\d+)?)|(0+(\.0+)?))$"  //非正浮点数(负浮点数 + 0)    
"^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数    
"^(-?\d+)(\.\d+)?$"  //浮点数    
"^[A-Za-z]+$"  //由26个英文字母组成的字符串    
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串    
"^[a-z]+$"  //由26个英文字母的小写组成的字符串    
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串    
"^\w+$"  //由数字、26个英文字母或者下划线组成的字符串    
"^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$"    //email地址    
"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$"  //url   
"^[A-Za-z0-9_]*$"  

转载:http://www.111cn.net/wy/99/js_rex.htm



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值