正则表达式

正则表达式

字符串操作:

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, '***');

字符类

  1. 任意字符 [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));
  1. 范围 [a-z]、[0-9]    例子:id[0-9]——id0、id5
  2. 排除 [^a]               例子:o[^0-9]t——oat、o?t、o t
  3. 组合 [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次

单词边界:

最近在期中考试,正则表达式蛮重要的,需要深入学习。事情都安排妥当了,7.11号去北京实习,希望收获更多,见见外面的更广阔的世界。

念念不忘,必有回响。
原文地址:https://www.cnblogs.com/paxster/p/3175192.html