请老师看下对不对,还有个问题问下。
来源: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,不需要写函数再实例化。参考:
祝学习愉快!
相似问题