文章目录
  1. 1. javascript正则表达式与java正则表达式的细微差异写法

javascript正则表达式与java正则表达式的细微差异写法

javascript

**注,javascript的正则表达式与java正则表达式写法有些差别,如果完全按照正则表达式的方式写的话,javascript可能会报错,不起效。

*如,一个简单的\d{10},如果放在javascript中,就得这样写:var regPatrn = /^\d{10}$/; alert(regPatrn.test(‘1234567890’));。而在java中则只要String memeberIdRegx = “\d{10}”;如此就行了。

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;

       alert(reCat.test(data));  //true

    

       //检查字符是否存在  g 继续往下走  i 不区分大小写

   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

       }

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) //by zergling  

{  

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_]*$" 

 

文章目录
  1. 1. javascript正则表达式与java正则表达式的细微差异写法