1.字符类别
好处:有效的使用字符类别可以使正则表达式更加简洁,便于阅读。
举例1:大写字母、小写字母和数字可以使用“\w”直接表示。
案例2:若要匹配0到9之间的数字可以使用“\d”表示。

2.字符类别
下面为了方便读者理解字符类别的使用,以“.”和“\s”为例进行演示.
varstr = 'good idea';
//正则对象
varreg = /\s../gi;
//匹配结果:[" id"]
str.match(reg);
正则对象reg用于匹配空白符后的任意两个字符(除换行外)。
因此在控制台查看到的结果中,id前有一个空格。
字符集合的表示方式:“[]”可以实现一个字符集合。
字符范围:与连字符“-”一起使用时,表示匹配指定范围内的字符。
反义字符:元字符“^”与“[]”一起使用时,称为反义字符。
不在某范围内: “^”与“[]”一起使用,表示匹配不在指定字符范围内的字符。

注意:字符“-”在通常情况下只表示一个普通字符,只有在表示字符范围时才作为元字符来使用。“-”连字符表示的范围遵循字符编码的顺序,如“a-Z”、“z-a”、“a-9”都是不合法的范围。
【案例】限定输入内容
代码实现思路:
①编写HTML,设置一个年(份)和月(份)的文本框,以及一个查询按钮。
②获取操作的元素对象,对表单的提交进行验证。
③验证年份,正则:/^\d{4}$/。验证月份,正则: /^((0?[1-9])|(1[012]))$/ 。
④文本框获取焦点,去除提示框的颜色。文本框失去焦点,去除输入内容的两端的空白,并进行验证。


代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>限定输入内容</title>
</head>
<body>
<!--制作页面-->
<form id="form">
年份
<input type="text" name="year" id="year" value="" />
月份
<input type="text" name="month" id="month" value="" />
<input type="submit" value="查询"/>
</form>
<div id="result">
<!--放错误提示-->
</div>
<!--验证过程-->
<script type="text/javascript">
//1.获取操作元素对象
var form = document.getElementById("form");//<form>元素对象
var result = document.getElementById("result");//<div>元素对象
var inputs = document.getElementsByTagName('input');//<input>元素集合
//2.验证年份方法
function checkYear(obj)
{
if(!obj.value.match(/^\d{4}$/))
{
obj.style.borderColor = 'red';
result.innerHTML = '输入错误,年份为4位数字表示';
return false;
}
result.innerHTML="";
return true;
}
//3.任务:编写验证月份方法
function checkMonth(obj)
{
//01,02,..,09;1,2,..9;10,11,12
//?表示0个或者1个
if(!obj.value.match(/^(0?[1-9])|(1[012])$/))
{
obj.style.borderColor = 'red';
result.innerHTML = '输入错误,月份为1-12之间';
console.log(obj.value);
return false;
}
console.log(obj.value);
result.innerHTML="";
return true;
}
//4.对表单提交验证
form.onsubmit = function(){
return checkYear(inputs.year)&&checkMonth(inputs.month);
};
//5.优化用户体验//失去焦点处理空格
inputs.year.onblur = function(){
this.value = this.value.trim();
checkYear(this);
};
inputs.month.onblur = function(){
this.value = this.value.trim();
checkMonth(this);
};
//
</script>
</body>
</html>

