Fork me on GitHub

regExp

正则表达式

修饰符

g/i/m/y/u

g => 全局查找 从上一次匹配的位置继续寻找直到找到匹配的位置开始,不一定是第一个就匹配上
i => 大小写不敏感
m => 检测字符串中的换行符
y => es6 全局查找 但是 必须是匹配成后紧跟着的第一个字符就要匹配成功才算
u =>  用来处理Unicode字符的 大于两个字符(0xffff) .不匹配/量词(大于0xffff)/u{61}(这种Unicode字符)

方法

RegExp
compile => 编译正则表达式
exec => 搜索字符串中指定的值。返回找到的值,并确定其位置
test => 搜索字符串中指定的值。返回true或false
String
search => 搜索与正则表达式相匹配的值,stringObject 中第一个与 regexp 相匹配的子串的起始位置。注释:如果没有找到任何匹配的子串,则返回 -1。
match => 找到一个或者多个正则表达式的匹配。 返回的是匹配的值,没有 为 null
replace => 替换与正则表达式匹配的子串。
split => string ==> []

元字符

w => 查找字符单词  W => 查找非单词字符
d => 查找数字      D => 查找非数字字符
s => 查找空白字符  S => 查找非空白字符
b => 匹配单词边界  B => 匹配非单词边界
[] => 用于查找某个范围内的字符
{} => 量词

^ => 字符串的开始位置
$ => 字符串的结束位置

* => {0,}
+ => {1,}

? => {0,1}

用到过的正则例子

1. 邮箱验证 xx@xx.com/cn;

var s = '1205562160@qq.com';
var reg = new RegExp(/\d{5,11}@\w{2,3}\.com|cn/);
reg.test(s);

2. trim

function trim(s){
    return s.replace(/(^\s*)|(\s*$)/g,'');
}

3. 去掉重复的字符串

var str = 'aaabccddde';

str = str.replace(/(.)\1+/g,'$1');

4. 验证注册名称 字母开头,后面数字、字符串、下划线,长度为9-20;

var s = 'a2323_wewwe';
var reg = new RegExp(/^[a-zA-Z][\w]{8-19}$/,'g');
reg.test(s);

5. 数字每三位数添加逗号

var num = 1233445454.12;

num.toString().replace(/(\d)(?=(\d{3})+\.)/g,function($2){
    return $2+',';
})
-------------本文结束感谢您的阅读-------------