匹配1-31的值,可以是1,2,3,4,5 还可以是1 这样的类型 输入的值要在1到31之间;
比如输入:1,2,3,31 返回true 输入1,2,32返回false
输入2返回true 输入32返回false
void Main()
{
var arry=new string[]{"1,12,3,31",
"1",
"1,12,32",
"2",
"33",};
var reg=new Regex(@"^(([1-9]|[12]\d|3[01]),)*([1-9]|[12]\d|3[01])$");
foreach(var item in arry)
Console.WriteLine("{0} -- {1}",item,reg.IsMatch(item));
/*
1,12,3,31 -- True
1 -- True
1,12,32 -- False
2 -- True
33 -- False
*/
}
<script>
var rx = /^([1-9]|[1-2]\d|30|31)(,([1-9]|[1-2]\d|30|31))*$/;
document.write(rx.test("1,2,3,31") + '<br>');
document.write(rx.test("1,0,3,31") + '<br>');
document.write(rx.test("1,2,3,33") + '<br>');
document.write(rx.test("1,2,3,23") + '<br>');
(([1-2]\d|30|31|4-9),)*(([1-2]\d|30|31|4-9))
void Main()
{
var arry=new string[]{"1,2,3,31",
"1",
"1,12,32",
"2",
"32",};
var reg=new Regex(@"^(([1-9]|(2\d)|(3[01])),)*([1-9]|(2\d)|(3[01]))$");
foreach(var item in arry)
Console.WriteLine("{0} -- {1}",item,reg.IsMatch(item));
/*
1,2,3,31 -- True
1 -- True
1,12,32 -- False
2 -- True
32 -- False
*/
}
楼上的那些都回答了,基本都是一样的做法,
^(([1-9]|[12]\d|3[01]),)*([1-9]|[12]\d|3[01])$
或
^([1-9]|[1-2]\d|30|31)(,([1-9]|[1-2]\d|30|31))*$
都可以的