请老师看下对不对,还有个问题问下。
来源:2-17 编程练习
慕仙7313728
2022-06-14 22:30:05
var str = 'JavaScript_RegExp_5@gmail.com';//_RegExp_5@gm
var reg1=/\w[A-za-z]{6}\w\d{1}\@[A-Za-z]{2}/;
var reg2=new RegExp('\\w[A-za-z]{6}\\w\\d{1}\\@[gm]{2}');
var result1=reg1.test(str);
var result2=reg2.test(str);
var result3=reg1.exec(str)[0];
var result4=reg2.exec(str)[0]
function RegExpFun(r){
this.r=r;
}
RegExpFun.prototype.ZZBDS=function(){
var reg3=/\w[A-za-z]{6}\w\d{1}\@[A-Za-z]{2}/;
var reg4=new RegExp('\\w[A-za-z]{6}\\w\\d{1}\\@[gm]{2}');
var result=result1+'/'+result2+'/'+reg3.test(this.r)+'/'+reg4.test(this.r)+'/'
+reg3.exec(this.r)[0]+'/'+reg4.exec(this.r)[0]+'/'+result3+'/'+result4
return result
}
var result5=new RegExpFun(str)
console.log(result5.ZZBDS())麻烦老师看下,请问老师,如果我不写this.r=r,然后在方法中直接传入str怎么也可以传入??
1回答
同学你好,代码输出结果没问题。
针对提问回复:str是全局变量,所以即使不传入,在函数中也可以使用。
另外本题的意思是new RegExp()就是构造函数方式定义正则,在配合修饰符i,不需要写函数再实例化。参考:

祝学习愉快!
相似问题