本系列博客汇总在这里:正则表达式汇总


一、说明
  • 我们已经提到了怎么重复单个字符(直接在字符后面加上限定符就行了);但如果想要重复一个字符串又该怎么办?你可以用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了,你也可以对子表达式进行其它一些操作(后面会有介绍)。
  • (\d{1,3}\.){3}\d{1,3}是一个简单的 IP 地址匹配表达式。要理解这个表达式,请按下列顺序分析它:\d{1,3} 匹配1到3位的数字,(\d{1,3}\.){3} 匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(\d{1,3})
  • 不幸的是,它也将匹配 256.300.888.999 这种不可能存在的 IP 地址( IP 地址中每个数字都不能大于 255)。如果能使用算术比较的话,或许能简单地解决这个问题,但是正则表达式中并不提供关于数学的任何功能,所以只能使用冗长的分组,选择,字符类来描述一个正确的 IP 地址:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
二、代码演示
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function valid()
{
	//第一组是1-223,第二组是0-255,第二组是0-255,第二组是1-255
	//223.255.255.255
	var reg = /^((2[0-1]\d|22[0-3]|[01]?[1-9]\d?|10\d)\.)((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){2}(2[0-4]\d|25[0-5]|[01]?[1-9]\d?|10\d)$/;		
	
	var uname = document.getElementById('username').value;
	if(reg.test(uname))
	{
		alert("合法");
	}else
	{
		alert("不合法");
	}
}
</script>
</head>
<body>
用户名:<input type="text" name="username" id="username">
<input  value="点击" type="button" onclick="valid()">
</body>
</html>

正则表达式(3)_分组_html
如有错误,欢迎指正!