代码改变世界

正则表达式基础 多选结构 加不加括号大不同

2011-09-24 22:27  chen.simon  阅读(425)  评论(0编辑  收藏  举报

/^\d{1,2}|1\d{2}$/

/^(\d{1,2}|1\d{2})$/

这两组正则表达式 加不加括号效果是不一样的

测试代码

<html>
<head>
<title>Test reg</title>
</head>
<body>
<input type="text" id="test_input" value="">
<input type="button" value="test reg" onclick="test()">
<body>
<script type="text/javascript">

function test()
{
var value = document.getElementById("test_input").value;
//alert(value);
var regExp = /^(\d{1,2}|1\d{2})$/;
//var regExp = /^\d{1,2}|1\d{2}$/;
if(regExp.test(value))
{
alert("Match OK!");
}
else
{
alert("Match Fail!");
}
}
</script>
</html>



/^\d{1,2}|1\d{2}$/

这个表是以一到两个数字开头的字符串 或者 以1后面接两个数字结尾(也就是100-199之间结尾)的字符串

/^(\d{1,2}|1\d{2})$/

这个表是 ^099$ 或者^100199$,也就是0199

其实这个涉及到 多选结构

看《精通正则表达式》(Jeffrey)13

看到14页的时候 他就举个例子是

^From|Subject|Date:

^(From|Subject|Date):

之间的区别