量词
语法 |
含义 |
* |
表示匹配 零次或者多次(任意次) |
? |
表示匹配零次或者一次(最多一次) |
+ |
表示匹配一次或者多次(至少一次) |
{n} |
表示匹配n次 |
{n,m} |
表示匹配n次到m次 |
{n,} |
表示匹配至少n次 |
预定义类
语法 |
含义 |
. |
表示匹配除了回车换行的其他所有字符 |
\d |
(digital)表示匹配数字字符[0-9] |
\D |
表示匹配非数字字符[^0-9] |
\w |
(word)表示单词字符[0-9][a-z][A-Z]_字母数字下划线 |
\W |
表示非单词字符 |
\s |
(space)表示空白字符 |
\S |
表示非空白字符 |
[\w\W] |
表示所有字符 |
边界(前面或者后面有空格或者是字符开头)
语法 |
含义 |
^XXX |
表示以XXX开头 |
XXX$ |
表示以XXX结尾 |
注意 |
当^在类中的时候表示取反^0-9
|
\b |
表示单词的边界 |
\B |
表示非单词边界 |
边界运用
- \b或\B
var str = 'huang chu cai yang xiao'
str.match(/huang\b/) // huang 表示字符串选中字符串中的huang,并且必须是边界(后面有空格)
str.match(/huan\b/) // null 匹配huan后,但是发现后面并不满足条件,有g
str.match(/\bhuan/) // huan 匹配huan,前面又是边界
str.match(/an\b/) // null 匹配ang,但是ang不是边界,前面还有u,后面有g
- ^或$
这个可以结合字符串的长度进行综合。
var str ="xiao xiao hcc xiao"
str.match(/^xiao/g) // xiao
str.match(/xiao$/g) // xiao
str.match(/^xiao$/g) // null 就是匹配'xiao'字符串
如果想针对字符的整体,我们同时添加^$
var str ='xiao';
/^xiao$/.test(str); //true
//想匹配6-20个数字的字符串
var patt1 =/^\d{6,20}$/
patt1.test("11111") // false
patt1.test("11113313151") // true
综合运用
// 取得里面的<!-- My -- comment \n test -->,<!---->
var str = '.. <!-- My -- comment \n test --> .. <!----> .. '
//贪婪模式和非贪婪模式
var patt1 = /<!--[\w\W]*?-->/g
var patt2 =/<!--[^>]*>/g
var str = '<> <a href="/"> <input type="radio" checked> <b>'
var patt1 = /<[^>]+>/g
str.match(patt1) // '<a href="/">', '<input type="radio" checked>', '<b>'
非贪婪模式和贪婪模式参考
网友评论