使用jQuery绑定事件,为回调函数传递参数遇到的坑

本文探讨了在JavaScript中如何正确使用正则表达式进行输入验证,特别是针对数值输入的高度定制化验证方法。文章详细解释了为何使用new RegExp()而非正则字面量的重要性,并提供了具体的代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var heightData = {
				reg:'^(\\d{1,3}(\\.\\d+)?|1000(\\.|\\.0{1})?)$',
				warn:$.i18n.prop('com_zte_lte_projectparametermanage_create_warn_100'),
				property:'height'
			};
			this.blurData('height',heightData,this.checkBL);


checkBL:function(e){
			var data = e.data;
			var reg = new RegExp('' + e.data.reg,'g');
			var value = this.value;
			var warn100 = data.warn;
			var property = data.property;
			if(value == ''){
				this.placeholder = warn100;
				checkArrIntance[property] = true;
			}
			if(value.slice(-1) == '.'){
				this.value = value.slice(0,-1);
			}
			if(reg.test(this.value)){
				$(this).removeClass('input-border');
				checkArrIntance[property] = true;
			}else{
				$(this).addClass('input-border');
				this.placeholder = warn100;
				this.value = '';
				checkArrIntance[property] = false;
			}
		}

问题出现在传递正则表达式对象的地方,不能够直接使用reg=/^(\d{1,3}(\.\d+)?|1000(\.|\.0{1})?)$/g;

这种字面量的方式,必须使用上文的new 对象方法才可

转载于:https://my.oschina.net/wangch5453/blog/800229

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值