正则表达式一

//创建正则表达式
//var re=new RegExp("模式字符串","标志"); 标志:i:表示不区分大小写
//g:全文查找 m:多行查找
var re=new RegExp("abc"); //看是否包含abc
alert(re.test("abc")); //返回true
alert(re.test("ABC")); //返回false

var re=new RegExp("abc","i"); //看是否包含abc并且不区分大小写
alert(re.test("ABC")); //返回true


//字面量方式
//var re=/模式字符串/标志
var re=/he/i //看是否包含he并且不区分大小写
alert(re.test("heww")); //true

var re=/^he/i //表示he必须出现在字符串的开始, ^:脱字符代表开始位置
alert(re.test("he is girl"))//true;
alert(re.test(" he is girl")) //false

//是否包含空格
var re=/\s/; //匹配任何空白字符, \:转义
alert(re.test("aaa bb")); //true

//是否包含英文字母,数字
var re=/[a-z]/; //是否包含英文字母,任意一个英文字母
alert(re.test("aaa")) //true

var re=/[a-zA-Z]/;//包含大小写英文字母
var re=/[0-9]/; //包含数字

//简写
\w: 相当于:[a-zA-Z0-9_]
\d: 相当于: [0-9]

var s="abc";
var re=/\w+/; //+ :一次或多次
var re=/\w*/; //+ :0次或多次

var re=/\w?/; //? :0次或一次
alert(re.test(s)); //true

var osVersion="Ubuntu 8";
var re=/^[a-z]+\s+\d+$/i;//表示字符串开头出现一个或多个字母,然后是一个或多个空格,然后是一个或多个数字,$:表示结尾。
alert(re.test("a 1")); //true
//exec 返回匹配
alert(re.exec(osVersion)); //返回:Ubuntu 8

//分组
var re=/^([a-z])+\s+(\d)+$/i
var a=re.exec(osVersion);
alert(a[0]); //与整个正则表达式匹配的字符串, 结果:Ubuntu 8
alert(a[1]); //第一个分组 结果:Ubuntu
alert(a[2]); //第二个分组 结果: 8


//replace
var s='---abc123---';
alert(s.replace('-','#')); //#--abc123--- 只替换了一个
alert(s.replace(/-/,'#')); //#--abc123--- 只替换了一个
alert(s.replace(/-/g,'#')); //###abc123### 全部替换 g:全文查找

//将连续的‘-’替换成单个的‘#’
alert(s.replace(/-+/g,'#')); //#abc123#;

//去开头和结尾位置的空格 应用1
function trim(s)
{
var re1=/^\s+/, re2=/$\s+/;
s=s.replace(re1,'');
return s.replace(re2,'');
}


//split
var s="123,456,789";
alert(s.split(',')); //数组:123,456,789

var s="try 试试";
alert(s.split(/\s+/); //数组: try,试试

//search g:在search没有用
var s='My age is 18';
alert(s.search(/\d+/));//返回小标:10

//. 表示任意字符(除了换行符) \.:匹配小数点
var s="Ubuntu 8.10";
var re=/^([a-z]+)\s+(\d+)\.(\d+)$/i;
alert(re.test(s)); //true
alert(re.exec(s))); //Ubuntu 8.10,ubuntu,8,10
alert(s.match(re)); //Ubuntu 8.10,ubuntu,8,10

posted @ 2013-07-07 21:18  zhangchun  阅读(227)  评论(0编辑  收藏  举报