经典有关正则表达式例子

有字符串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次

 

前瞻

 

posted @ 2018-04-06 20:24  karila  阅读(538)  评论(0编辑  收藏  举报