正则表达式
正则表达式的量词
量词 | Description |
---|---|
n+ | 匹配任何包含至少一个n的字符串(1到多) |
n* | 匹配任何包含零个或多个n的字符串(0到多) |
n? | 匹配任何包含零个或一个n的字符串(0或1个) |
n{X} | 匹配包含X个n的序列的字符串 |
n{X,Y} | 匹配任何包含X到Y个n的序列的字符串 |
n{X,} | 匹配任何包含至少X个n的序列的字符串 |
n$ | 匹配任何结尾为n的字符串 |
^n | 匹配任何开头为n的字符串 |
Example1:
var str = “chenghao”;
var reg = /c+/;
alert(reg.test(str));
Result1: true
Example2:
var str = “aabbcd”;
var reg = /a{2}/;
alert(reg.test(str));
Result2: true
Example3:
var str = “aabbcd”;
var reg = /a{3}/;
alert(reg.test(str));
Result3: false
Example4:
var str = “aabbcd”;
var reg = /a{2,}/;
alert(reg.test(str));
Result4: true
Example5:
var str = “aaabbcd”;
var reg = /a{2,5}/;
alert(reg.test(str));
Result5: true
Example6:
var str = “cheng”;
var reg = /^c/;
alert(reg.test(str));
Result6: true
Example7:
var str = “whengc”;
var reg = /$c/;
alert(reg.test(str));
Result7: true
正则表达式的修饰符
量词 | Description |
---|---|
i | 执行对大小写不敏感的匹配 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) |
m | 执行多行匹配 |
Example1:
var str = “BBS”;
var reg = /b/;
alert(reg.test(str));
Result1: false
Example2:
var str = “BBS”;
var reg = /b/i;
alert(reg.test(str));
Result2: true
Example3:
var str = “BSASDASDBAA”;
var reg = /B/;
alert(reg.test(str));
alert(reg.test(str));
alert(reg.test(str));
alert(reg.test(str));
Result3: true true true
Example4:
var str = “BSASDASDBAA”;
var reg = /B/g;
alert(reg.test(str));
alert(reg.test(str));
alert(reg.test(str));
Result4: true true false
Example5:
var str = “test\nbbs”; // \n换行
var reg = /^b/;
alert(reg.test(str));
Result5: false
Example6:
var str = “test\nbbs”; // \n换行
var reg = /^b/m;
alert(reg.test(str));
Result6: true
下面展示一个验证邮箱的例子。
// 以数字,字母,下划线或者减号开头,并且有多个,加上@,再加上多个字符(包含数字,字母,下划线或者减号),再加上.(\ 为转义字符),再以com/cn/org结尾。
var reg = /^[0-9a-zA-Z_-]+@[0-9a-zA-Z_-]+\.(com|cn|org)$/;
alert(reg.test("123abc@163.com"));
Result: true