正则表达式

字面量方法创建正则表达式var reg=/abc/;
var reg=/abc/;
构造函数方式创建正则表达式
var reg=new RegExp(“abc”);

操作正则的方法:
字符串:match、search、replace、split
正则:test、exec

修饰符:
g表示全局匹配,i表示忽略大小写、y表示起始位置、m表示匹配多行

test判断是否含有正则内容,有就返回true,无就返回false,例如:
var flag=reg.test(str);
console.log(flag);

match 默认只返回第一次出现包含正则内容的子字符串
var reg=/abc/;
var str=“Abcdsabc”;
console.log(str.match(reg));
如果match加上全局匹配,将把所有匹配的内容以数组形式返回

seach返回第一次匹配到的子字符串首字母索引,如果没有返回-1
var reg=/abc/i;
var str=“AbcdsabcddfghAbc”;
console.log(str.search(reg));

split根据正则进行切割,结果返回集合
var reg=/abc/i;
var str=“sad Abc asdad abc llas”;
console.log(str.split(reg));

replace替换字符串内容,默认只换第一个,加g可以匹配全部
var reg=/abc/gi;
var str=“sad abc asdad Abc llas”;
console.log(str.replace(reg,""));
replace第二个参数:回调函数,回调函数的第一个参事就是匹配到的结果
t2.value=val1.replace(reg,function($0,$1,$2){ //$0表示匹配到的内容,$1表示第一个子项;
var result=’’;
for(var i=0;i<$0.length;i++){
result+=’
’;
}
return result;
})
回调函数return结果就是要替代成的内容

exec 将匹配成功的字符串放进数组,返回集合,如果没有返回null,不支持全局匹配
var reg=/abc/i;
var str=“sf abc abc Abc kj”;
console.log(reg.exec(str));

()分组,例如:
var str=‘hello world’;
var reg=/(el)lo/ //ello el
var reg=/(el)(lo)/; //ello el lo
var reg=/(e(ll))(o)/g; //ello ell ll o
console.log(str.match(reg));

重复的子项:\1 \2 \3 例如:/([a-z])\1/g 重复两次的字母
\1表示与第一个子项重复,\2表示与第二个子项重复
与前边出现的子项一样,例如:
var str1=‘

bcsibvdbvb
’;
var str2=‘
bcjdsbjvn

’;
var reg=/<([a-z0-9])+[ >]+>[<]+</\1/;
console.log(reg.test(str1)); //true
console.log(reg.test(str2)); //false

前向声明(?=):只会作为条件,但是不会作为匹配的结果
var str=‘abshchab’;
var reg=/a(?=b)/g;
str=str.replace(re,’*’); //替换所有ab中的a

反前向声明:只会返回排除掉的结果
var reg=/a(?!b)/g; //替换所有不是ab中的a

后向声明:(?<=)
var reg=/(?<=$)\d/g //把$后面的数字找到

判断汉字:[\u4e00-\u9fa5]

.表示除了换行符以外的所有字符,一个点只占一位
表示任意多次(0-n),加在前者后边,表示可以出现任意次
+表示至少出现一次
?表示出现一次或零次
[]表示出现的范围 可以写成[a-z]表示a到z
\w表示数字字母下划线 \W表示非数字字母下划线
\d表示数字 \D表示非数字
\s表示空格 \D表示非空格
\b表示端点(起始、结束、空格)
\B非端点
{m,n}表示至少匹配m次,最多匹配n次
{m,}表示至少匹配m次,多者不限
{m}表示正好匹配m次
/^表示开始匹配
$/表示结束
|表示或
^表示排除 只能写在中括号里第一个位置
()表示分组,将内容当做一个整体进行匹配
$1 $2与()合用,可以实现交换位置
var reg=/(.
)\s(.*)/;
var str=“baidu taobao”;
console.log(str.replace(reg,"$2 $1"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值