谁能写出这个验证表达式?写好了就是100分. 注册帐号,帐号要求:6到9位的数字;不能全部是同一数字;6和8两位数字不能超过4位;6和8加起来也不能超过4位.写好了就是100分. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 // 6到9位的数字;不能全部是同一数字;6和8两位数字不能超过4位;6和8加起来也不能超过4位. using System;using System.Text.RegularExpressions;class Test{ static void Main() { Console.WriteLine(IsIDOK("1234AB")); // false Console.WriteLine(IsIDOK("123456")); // true Console.WriteLine(IsIDOK("1111111")); // false Console.WriteLine(IsIDOK("6677886")); // false } static bool IsIDOK(string id) { if (!Regex.IsMatch(id, @"\d{6,9}")) return false; if (IsSameChar(id)) return false; int n6 = NumberOfDigit(id, '6'); int n8 = NumberOfDigit(id, '8'); if (n6 > 4 || n8 > 4 || n6 + n8 > 4) return false; return true; } static int NumberOfDigit(string s, char digit) { int n = 0; foreach (char c in s) { if (c == digit) n++; } return n; } static bool IsSameChar(string s) { if (string.IsNullOrEmpty(s)) return true; char c0 = s[0]; foreach (char c in s) { if (c != c0) return false; } return true; }} 写成一个正则比较难,分成N个小的就很容易了.而且 n6+n8>4 就包括了 n6>4 和 n8>4 了/. if (!Regex.IsMatch(id, @"\d{6,9}")) return false;应改为: if (!Regex.IsMatch(id, @"^\d{6,9}$")) return false; var pn = /^[0-5,7,9]{1,9}([6]{0,3}|[8]{0,3}[6|8]{0,3})$/g; var pn2 /\d{6,9}/g;用这两个应该可以解决. 需要一些材料,各位老大帮帮忙 两个asp.net的常用问题 C#语句问题 sql 如果是字符串只过滤单引号就够了吗? 100分高分求救,树的更新!!!!!!!!!!!! 问题一,关于操作datagrid的问题,我没有好的解决方案,请高手指点? 使用adsi操作iis6.0,怎样控制虚拟目录在哪个应用程序池??? 这个变量"B"如何写 浏览器预览PDF文件,IE9没问题,IE8,IE11都不行,什么原因? 我的分不多了,还是刚刚那个查询的问题 window.open刷新问题。大家帮忙看下啊。。。我已经搞了三天了。没弄明白。这个是什么原因。。 博客中插入图片,如何可以做到?
using System.Text.RegularExpressions;class Test
{
static void Main()
{
Console.WriteLine(IsIDOK("1234AB")); // false
Console.WriteLine(IsIDOK("123456")); // true
Console.WriteLine(IsIDOK("1111111")); // false
Console.WriteLine(IsIDOK("6677886")); // false
}
static bool IsIDOK(string id)
{
if (!Regex.IsMatch(id, @"\d{6,9}")) return false;
if (IsSameChar(id)) return false;
int n6 = NumberOfDigit(id, '6');
int n8 = NumberOfDigit(id, '8');
if (n6 > 4 || n8 > 4 || n6 + n8 > 4) return false;
return true;
}
static int NumberOfDigit(string s, char digit)
{
int n = 0;
foreach (char c in s)
{
if (c == digit) n++;
}
return n;
}
static bool IsSameChar(string s)
{
if (string.IsNullOrEmpty(s)) return true;
char c0 = s[0];
foreach (char c in s)
{
if (c != c0) return false;
}
return true;
}
}
if (!Regex.IsMatch(id, @"^\d{6,9}$")) return false;
var pn2 /\d{6,9}/g;
用这两个应该可以解决.