正则表达式中exec,match,test说明

小溪逆流 2011-04-19

match与exec
var dd = "[email protected]";
var reg = /(\w)+@(\w)+\./;

 alert(dd.match(reg));  
 alert(reg.exec(dd));

//match与exec返回的值相同dx234xy@xxxyxcasf.,y,f返回一个长度为3的对象数组(假设数组名称为a)

则a[0]=dx234xy@xxxyxcasf.//匹配到的字符串

a[1]=y//正则表达式第一个子表达式(\w)+返回的最后一个字符

a[2]=f//正则表达式最后一个子表达式返回的最后一个字符,若最后一个字符是特殊字符则返回倒数第二个子表达式的最后一个字符

test返回trueorfalse

alert(/\w+@\w+\.\w+/.test("[email protected]")); //true
实例,纯js去掉字符串两端的空格比较复杂,所以我们可以运用正则表达式去掉 
var stringTrim = " 123 456 789  ";
     alert(stringTrim.match(/\w+.+\w+/)[0]);
也可以用jquery比较简单
$.trim("   hello, how are you?   ")
的结果是"hello, how are you?"    

使用经验,容易出错

写正则表达式时,不要插入空格

var ex1 = /^((\d{3,4}-?\d{8})|(((13)|(15)|(18))\d{9}))$/
var ex2 = /^((\d{3,4}-?\d{8} )|(((13)|(15)|(18))\d{9}))$/
var ex3 = /^(( \d{3,4}-?\d{8})|(((13)|(15)|(18))\d{9}))$/
都是不通的表达式

相关推荐