前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!
RegExp正则表达式是描述字符模式的对象。正则表达式用于对字符
前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!
RegExp
正则表达式是描述字符模式的对象。
正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。
修饰符
- i ; ignorCase 忽略大小写;
- g ; globle 全局匹配(如果没有g,则在匹配到第一个后停止,后面的就不管了);
- m ; mutiple 执行多行匹配;不太理解这个的用法
方括号[]
- [abc]; 查找集合范围内的字符;abc是泛指
- [^abc]; 查找不在集合范围内字符;^在方括号内是"非"的意思;
- [0-9]; 查找任何 0 到 9 的数字;
- [a-z]; 查找任何 小写a 到 小写z 之间的字符;
- [A-Z]; 查找任何 大写A 到 大写Z 之间的字符;
- (abc); 查找任何指定的选项,当做一个整体;
- |;或者的意思;必须用()包起来用;
元字符
- . ;查找除换行和结束字符之外的任意字符;
- \w;查找数字、字母及下划线;相当于[a-zA-Z0-9_];
- \W;查找非(数字、字母及下划线);相当于[^a-zA-Z0-9_];
- \d;查找数字;
- \D;查找非数字;
- \s;查找空白字符;
- \S;查找非空白字符;
- \b;匹配单词边界;
- \B;匹配非单词边界;
- 还有其他的...以后再说;
量词
- n+;匹配至少有一个n;
- n*;匹配任意个n;
- n?;匹配0个或者1个n;
- n{X};匹配X个n;一个字符串中的n的数量如果多于X个,那就只匹配到X个,后面的不管了;
- n{X,};匹配至少X个n;
- n{X,Y};匹配至少X个,最多Y个n;
- ^n;以n开头,一般写为/^n/;
- n$;以n结尾,一般写为/n$/;
- ?=n;匹配任何紧跟其后为n的字符串;如 /is(?= apple)/; 字符串 "This is apple!" 匹配成功,但是查找的是 is apple,匹配的是apple前面的 is;
- ?!n;匹配任何紧跟其后非n的字符串;如 /is(?!apple)/; 字符串"This is apple!"匹配成功,但是查找的是is !apple,匹配的是This的 is;
RegExp 对象方法
- RegExpObject.test(string); 检索字符串中指定的值,返回 true 或 false;
- RegExpObject.exec(string); 检索字符串中指定的值,以数组形式返回找到的值,并确定其位置;如果没找到返回null;
支持正则表达式的String对象的方法有:
- stringObject.search(RegExpObject); 检索与正则表达式匹配的字符串;如果匹配成功,返回该字符首字母下标;如果没找到,返回-1;
- stringObject.match(RegExpObject); 检索与正则表达式匹配的字符串;如果匹配成功,以数组形式返回字符;如果没找到,返回null;
- stringObject.replace(RegExpObject,newString); 检索与正则表达式匹配的字符串;如果匹配成功,则用newString替换字符,并且产生新字符串(不会改变原字符串);
- stringObject.split(RegExpObject,limit); 检索与正则表达式匹配的字符串;如果匹配成功,则用匹配的字符分割字符串,并且返回一个数组(原字符串不会改变);