正则表达式
正则表达式
字符串操作:
search查找字符串
1 var str='abcdefg'; 2 alert(str.search('g')); //返回要查找的字符串第一次出现的位置,没有返回-1,返回6,从0开始
substring查找子字符串
1 var str='abcdef'; 2 alert(str.substring(1,4));//从1开始获取字符串,获取数量为4,注意4代表前面的总和也就是abcd,结果为:bcd 3 alert(str.substring(1));//从1开始获取字符串
charAt获取某个字符
1 var str='abcdef'; 2 alert(str.charAt(2));//获取第三个字符
split分割字符串,获取数组
1 var str='abc-12-u-qw'; 2 var arr=str.split('-'); 3 alert(arr);//只能用-符号来分割字符串
匹配字符串里面的数字
1 var str='sdf e443 fedef 55 66gg 332 dff 99'; 2 var re=/\d+/g;//匹配全局的数字,+表示多个,\d表示匹配数字 3 alert(str.match(re));//match表示匹配正则表达式
字符串搜索search
1 var str='abcdef'; 2 alert(str.search(/b/));//查找b的位置,返回1
1 var str='asdf 443 vczxv 55'; 2 var re=/\d/; 3 alert(str.search(re));//第6个位置出现数字,返回5
获取浏览器类型
1 if(window.navigator.userAgent.search(/firefox/i)!=-1)//-1表示查找不到 2 { 3 alert('ff'); 4 } 5 else if(window.navigator.userAgent.search(/chrome/i)!=-1) 6 { 7 alert('chrome'); 8 } 9 else if(window.navigator.userAgent.search(/msie 9/i)!=-1) 10 { 11 alert('IE9'); 12 }
replace替换字符---过滤
1 var str='abacdAef'; //去除字符串的空格 2 alert(str.replace(/a/gi, 'T'));//g代表去global全匹配,i表示忽略大小写ignore
检测中文
1 var str='asdfb 34 +_=45 '; 2 var re=/[\u4e00-\u9fa5]/;//这个范围表示整个中文区间 3 alert(re.test(str));
星号过滤
1 var re=/我们|你们|他们/g;// |表示或者 2 oTxt2.value=oTxt1.value.replace(re, '***');
字符类
- 任意字符 [abc] 例子:o[usb]t——obt、ost、out
1 var str='1b2 abc 1c2 ee'; 2 var re=/1[abc]2/g;//[abc]里面的任何一个字符,返回结果1b2,1c2 3 //var re=/1a2|1b2|1c2/; 4 alert(str.match(re));
- 范围 [a-z]、[0-9] 例子:id[0-9]——id0、id5
- 排除 [^a] 例子:o[^0-9]t——oat、o?t、o t
- 组合 [a-z0-9A-Z]
1 var re=/<[^<>]+>/g;//匹配<>,尖括号里面不能继续包含尖括号 2 oTxt2.value=oTxt1.value.replace(re, '');
转移字符
转义字符 .(点)——任意字符
\d 表示匹配数字、\w 表示中文但是不能有特殊字符例如下划线、\s 表示匹配空格
\D、\W、\S 和上面的恰好相反
什么是量词
出现的次数 {n,m},至少出现n次,最多m次
例子:查找QQ号
1 var str='我的QQ是1240466552,你的是888888吗?'; 2 var re=/[1-9]\d{4,10}/g;//[1-9]表示第一位数字是一到九之间的数字,不能是0开头。{4,10}后面至少是4位数到10位数 3 alert(str.match(re));
常用量词
- {n,} 至少n次
- * 任意次 {0,}
- ? 零次或一次{0,1}
- + 一次或任意次{1,}
- {n} 正好n次
单词边界:\b
最近在期中考试,正则表达式蛮重要的,需要深入学习。事情都安排妥当了,7.11号去北京实习,希望收获更多,见见外面的更广阔的世界。
念念不忘,必有回响。