经典有关正则表达式例子
有字符串var str=’abc345efgabcab’,请写出3条JS语句分别实现如下3个功能
(1)去掉字符串中的a、b、c字符,形成结果:’345efg’
(2)将字符串中的数字用中括号括起来,形成结果:’abc[345]efgabcab’
(3)将字符串中的每个数字的值分别乘以2,形成结果:’abc6810efgabcab’
var str = "abc345efgabcab"; str = str.replace(/\[abc\]/g,""); //'345efg' str = str.replace(/(345)/g, "\[$1\]"); //'abc[345]efgabcab' str = str.replace(/\d/g, function(a){ //'abc6810efgabcab' return 2 * a });
(4)邮箱验证,中间用逗号隔开
var reg = /^([a-zA-Z]+[0-9]*@jd\.com)([,]([a-zA-Z]+[0-9]*@jd\.com))*$/
(5)验证带千分位的字符串
/^([0-9]{0,3})?(\,[0-9]{3})*(\.([0-9]+))?$/ig
常见元字符
字符 | 含义 |
---|---|
. | 查找单个字符,除开换行和行结束符 |
^ | 匹配以xx开头的字符串(例如^n,匹配以n开头的字符串) |
$ | 匹配以xx结尾的字符串(n$) |
\b | 匹配单词的边界(开始或结束) |
\B | 匹配非单词的边界 |
\w | 查找单词字符(字母、数字、下划线或汉字)等价范围[a-zA-Z0-9_] |
\W | 查找非单词字符(和\w相反,大写是取反,后面的类似) |
\s | 查找任意的空白字符 等价范围[ \r\n\f\t\v] |
\S | 查找非空白字符 |
\d | 查找数字 等价范围[0-9] |
\D | 查找非数字 |
\n | 查找换行符 |
\0 | 匹配空字符 |
匹配数量:
字符 | 含义 |
---|---|
* | 匹配0次或者多次(例如n*,匹配包含0个或多个n的字符串) |
+ | 匹配至少一次 (n+) |
? | 匹配0次或者一次 (n?) |
{n} | 匹配重复n次 (x{n}) |
{n,} | 匹配至少重复n次 |
{n,m} | 匹配重复n到m次 |
前瞻