js正则表达式()和$1...$9的理解和使用

1.小括号的意思

这是百度百科中的:

(pattern)

 匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使  用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用

2.我的理解

()就是起到一个分组作用,将匹配到的放到mathches集合中,$相当于集合名字,1-9就相当于索引,$1...$9相当于对应索引的值

 

3.使用()和$1...$9来限制输入位数

 

例如只能输入四位正整数的input框:

<html>
<title>正则表达式</title>
<head>
<meta charset="utf-8">
</head>
<script type="text/javascript">
	//只能输入1-9999正整数
	function clearInput(obj){
		obj.value = obj.value.replace(/[^\d]/g,"");
		obj.value = obj.value.replace(/^0.*$/g,"");
		obj.value = obj.value.replace(/^([1-9])(\d{3}).*$/,'$1$2'); //只能输入两个小数
	}
	function alertMessage(){
		var value=document.getElementById('digit').value;
		var regx=/\d{3}/;
		if (regx.test(value)) {
			alert("是3位");
		}else{
			alert("不是3位");
		};
	}
</script>
<body>
	四位正整数:<input id="digit" type="text" οnkeyup="clearInput(this)" onafterpaste="clearInput(this)">
	<input type="button" οnclick="alertMessage()" value="有几位数字">
</body>
<html></span>

^([1-9]) 是$1

(\d{3})是$2

总结:()和$1...$9结合使用是个很好的工具



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值