参考文章http://blog.csdn.net/hz_blog/article/details/7638697
<title>正则表达式二</title>
<script>
function execReg(regExp,str){
var reg=regExp;
//检查字符串是否匹配
var retrunValue=reg.exec(str);
alert(retrunValue);
}
//---------------------------------二选一,正则表达式中的或,“|“-----------------
//b|c 表示匹配b 或者c
var re=/b|c/;
execReg(re,'feilvbing');//b
var re=/^b|f.+/;//以f开头 或者匹配所有的字符串
execReg(re,'feilvbing');
//---------------------------------()表达式-------------------------------------
var re=/^(b|c).+/;//匹配以b或者c 开头得任意多个字符串
execReg(re,'cainiaowo');//cainiaowo,c
/*如果你也实验了的话,会发现返回的结果后面多出来一个“,b“,这是()内的b|c所匹配的内容。
我们在正则表达式内括号里写的内容会被认为是子正则表达式,所匹配的结果也会被记录下来供后面使用。
我们暂且不去理会这个特性。*/
//---------------------------------[abc] 字符集合--------------------------------
var re=/^[abc]/;
execReg(re,'bbs.baidu.com');//b
//[a-z] [A-Z] [0-9] 分别表示小写字母,大写字母,数字。
var re= /^[a-zA-Z][a-zA-Z0-9]+/;
execReg(re,"baidu.com424234");//baidu 中间有点 后面的不做匹配了
//---------------------------------[^abc] 反字符集合-----------------------------
var re=/[^abc]/; //开头不能以a 或者 b 或者 c
execReg(re,'baidu');//返回i 没有找到
//[^0-9]表示非数字,[^a-z]表示非小写字母,一次类推。
//---------------------------------\b 边界与非边界:border -----------------------
//\b表示的边界的意思,也就是说,只有字符串的开头和结尾才算数。例如/\bb/就表示字符串开始的c或者是结尾的c
var re=/\bb/;
execReg(re,'baidu.com');//b
execReg(re,'未审数bbbb');//b
execReg(re,'ilboveu');//null b 不在边界
//非边界 \B
var re=/\Bb/;
execReg(re,'ilboveu');//b
//---------------------------------数字与非数字 ---------------------------------
// \d表示数字的意思,相反,\D表示非数字。
var re=/\d/;
execReg(re,'cainiao5');//5
var re=/\D/;
execReg(re,'2342342'); //null;
//--------------------------------空白 -----------------------------------------
var re=/\s.+/;//空格
execReg(re,' this is a beatiful girl');// 匹配第一个空格以后所有的字符串
var re=/\S/; //非空格
execReg(re,'This is a ');//匹配一个非空格之后就返回 T
//--------------------------------\w表示单词字符,等同于字符集合[a-zA-Z0-9_] -------------
var re=/\w+/;
execReg(re,'.workds');//workds
var re=/\W+/;//\W表示非单词字符,等效于[^a-zA-Z0-9_]
execReg(re,'wo shi a men');//''
execReg(re,'刘德华');
</script>