正则表达式
概念: 正则表达式是一个包含正常字符与元字符的用于匹配的字符串对象
如何创建正则表达式
- 构造函数:new RegExp('map')
- 字面量/map/
常用元字符
- 基本元字符 . () [] |
- 限定元字符
-
- ? {n} {n,} {n,m}
-
- 首位元字符 ^ $
- 简写元字符 \d \D \s \S \w \w
-
其他 反向引用 \数字 匹配但不捕获 (?:)
. 除了换行以外的任意字符 [] 出现在[]中的任意一个字符 () 一方面提高优先级,另一面分组 | 或 具有最低优先级 * 紧跟在前面的字符出现0次或多次,默认尽可能多的匹配 {0,} + 紧跟在前面的字符出现1次或多次,默认尽可能多的匹配 {1,} ? 紧跟在前面的字符出现0次或1次 {0,1} {n} 紧跟在前面的字符出现n次 {n,} 紧跟在前面的字符至少出现n次 {n,m} 紧跟在前面的字符出现n-m次 ^ 放在正则一开始, 表示匹配必须以 xxx 开头 放在 [] 中表示 否定, [^abc] $ 放在正则的结尾处, 表示必须以 xxx 结尾 在替换中使用 $数字 表示组引用 \d 数字 digit \D 非数字 \s 空白(空格, 换行, ...) space \S 非空白 [\S\s] 表示任意的一个字符 \w 文字: 数字, 字母, 下划线 word \W 非文字 \数字 引用前面匹配到的组 <div>...</div> <([^>]+)>[^<]+</\1> (?:)
常用方法:
-
正则.test(str) 表示这个字符串是否符合正则表达式
- 正则.exec(str) 表示利用正则将字符串中复合的子字符串截取胡来,存储到数组中,每次只取一个
取出字符串中的数字到数组中
var str='1abdf2lkui19erehgih354hshu6';
var arr=[];
var r=/\d+/g;
var m;
while(m=r.exec(str)){
console.log(m);
arr.push(m[0]);
}
console.log(arr); //["1", "2", "19", "354", "6"]
3.字符串.replace(正则,替换字符) 表示将字符串中符合正则的内容,替换成指定的字符
替换字符串中的数字为*
var str='1abdf2lkui19erehgih354hshu6';
var res=str.replace(/\d+/g,'*');
console.log(res); //*abdf*lkui*erehgih*hshu*