JS

正则表达式

2018-12-11  本文已影响6人  夏海峰

1、定义正则表达式的两种方式

var reg1 = new RegExp('hello');
var reg2 = /world/;

2、使用 RegExp对象的正则方法
test()方法,用于检索字符串中的匹配值,返回布尔值
exec()方法,用于检索字符串中的匹配值,返回被找到的匹配值或null

var pat1 = /my/;
var str1 = 'this is my code';
pat1.test(str1);

var pat2 = /hello/;
var res = pat2.exec('oh hello world');

3、使用 字符串的正则方法
search(), 返回索引号
match(), 返回匹配成功的数组
replace(), 返回新字符串
split(), 返回数组

var str3 = 'hello world';
var idx = str3.search(/llo/);

var str4 = '1 plus 2 equal 3';
var arr1 = str4.match(/\d+/g);

var newStr = str4.replace(/plus/,'world');

var str5 = 'Hello Hun, oh i am Hun.';
var arr2 = str5.split(/\s+/);
var arr3 = str5.split(' ');

4、正则表达式的写法
[a-f] 查找 a ~ f 中的任意一个字符
[^a-f] 除了 a ~ f 之间的所有字符

var s1 = 'is this all there is ?';
var p1 = /[a-h]/g;
var arr = s1.match(p1);

var p2 = /[^a-h]/g;
var arr = s1.match(p2);

a|b 查找a或者b
. 表示任意的单个字符

\w 匹配任意的字母、数字和下划线
\W 匹配任意的非字母、非数字和非下划线

\d 查找数字
\D 查找非数字

\s 查找空白字符( 空格、tab、换行、回车 )
\S 查找非空白字符

\n 查找换行符

n+ 匹配任何包含至少一个 n 的字符串
n* 匹配任何包含零个或多个 n 的字符串
n? 匹配任何包含零个或一个 n 的字符串
n{X} 匹配包含 X 个 n 的序列的字符串
n{X,Y} 匹配包含 X ~ Y 个 n 的序列的字符串
n{X,} 匹配包含至少 X 个 n 的序列的字符串

n$ 匹配任何结尾为 n 的字符串
^n 匹配任何开头为 n 的字符串

\b 匹配单词边界,以\b后面的字符为边界,则成功匹配
\B 匹配非单词边界

5、三种修饰符

/reg/i
/reg/g
/reg/m

6、常用的正则表达式
汉字 [\u4e00-\u9fa5]
手机号 1[0-9]{10}
邮箱 (\S)+[@]{1}(\S)+[.]{1}(\w)+

7、资源推荐
正则调试工具
正则表达式解析

上一篇 下一篇

猜你喜欢

热点阅读