求一条正则表达式 要求 在文本框内如果是字母的话可以输入60个 汉字只能输入30个也就是只能只能输入60字节的长度 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 正则做不到,用Javascipt吧<script>function check() { var regC = /[^ -~]+/g; var regE = /\D+/g; var str = t1.value; if (regC.test(str)){ t1.value = t1.value.substr(0,30); } if(regE.test(str)){ t1.value = t1.value.substr(0,60); }}</script><textarea maxlength="10" id="t1" onkeyup="check();"></textarea> 貌似把文本框的长度设置为60就可以了,Maxlenth属性吧。正则表达式是验证数据合不合一定格式的,区分不了汉字和字母吧。 Maxlenth要是为60的话就是60个汉字了 1、你真接可以设置为wvarchar类型就可以了,这样的话还可以防止输入字符和汉字的组合。2、如果是纯字符或纯汉字:^((\w{0,60})|[\u4e00-\u9fa5]{0,30})$ //////////////////////////////////////////////MSN:[email protected]请给我一个与您交流的机会! Response.Write(Regex.IsMatch(Regex.Replace("这是10个字这是10个字这是10个字这是10个字这是10个字这是10个字", @"[\u4e00-\u9fa5]", "zz", RegexOptions.IgnoreCase), @"^.{60}$")); ^[\s\S]{0,3}$ //////////////////////////////////////////////MSN:[email protected]请给我一个与您交流的机会! ^[\s\S]{0,30}$ //////////////////////////////////////////////MSN:[email protected]请给我一个与您交流的机会! ^[\s\S]{0,30}$:这个匹配30个汉字,30个字符.30个汉字与字符的组合。 //////////////////////////////////////////////MSN:[email protected]请给我一个与您交流的机会! 60以内不为空的话Response.Write(Regex.IsMatch(Regex.Replace("这是10个字这是10个字这是10个字这是10个字这是10个字这是10个字", @"[\u4e00-\u9fa5]", "zz", RegexOptions.IgnoreCase), @"^.{1,60}$")); ^.{0,30}$也是一样的 //////////////////////////////////////////////MSN:[email protected]请给我一个与您交流的机会! if (document.gnmssq.textfield1.value=='') { window.alert ("请输入!"); gnmssq.textfield1.focus(); return false }if (document.gnmssq.textfield1.value.length<=60) { window.alert("长度不能小于60"); gnmssq.textfield1.focus(); return false } 那么就用js吧,正则好像定不了长度啊。主要是有个混合的可能。或都直接用代码。等待高手的回答。 //////////////////////////////////////////////MSN:[email protected]请给我一个与您交流的机会! 简单的办法就是将所有字符的字节数加起来看看是否达到60没有System.Text.Encoding.Unicode.GetBytes(chrInputString, i, 1); 我这个textbox控件名为txt1怎么现在这个的字节数小于等于60啊? public static int GetStringBytes(string InputString) { int Result = 0; char[] chrInputString = InputString.ToCharArray(); for (int i = 0; i < chrInputString.Length; i++) { byte[] bytInputString = System.Text.Encoding.Unicode.GetBytes(chrInputString, i, 1); if (bytInputString.Length == 2) { if (bytInputString[1] != 0) { Result += 2; } else { Result++; } } } return Result; }程序还要我解释不?if (bytInputString[1] != 0)这个情况就是全角情况 如此调用:if(GetStringBytes(“乱七八糟的字符串扔进来”) > 60){ MessageBox.Show("对不起,超过60字节长度了 - -!");} 求思路:怎样在一个变量中存储一个一对一的关系? 权限判断问题!!!!!!!!!!! 关于sitemap和SiteMapPath的结合!可能很简单!!但我刚接触! ASP.NET数据库控件 怎么去掉读出的nbsp符号 【百分求助】Gridview 更新出现乱码 源管理器 紧急求助,服务器端事件如何给客户端的hidden控件设置value值 急!!跪求!!如何读取文本文件里边的数据 如何利用ASP.NET在数据库中动态生成表 web developer 2005中的预览不了网页! 关于textBox控件的自动触发事件的问题
function check() {
var regC = /[^ -~]+/g;
var regE = /\D+/g;
var str = t1.value;
if (regC.test(str)){
t1.value = t1.value.substr(0,30);
}
if(regE.test(str)){
t1.value = t1.value.substr(0,60);
}
}
</script>
<textarea maxlength="10" id="t1" onkeyup="check();">
</textarea>
2、如果是纯字符或纯汉字:^((\w{0,60})|[\u4e00-\u9fa5]{0,30})$
//////////////////////////////////////////////
MSN:[email protected]请给我一个与您交流的机会!
//////////////////////////////////////////////
MSN:[email protected]请给我一个与您交流的机会!
//////////////////////////////////////////////
MSN:[email protected]请给我一个与您交流的机会!
//////////////////////////////////////////////
MSN:[email protected]请给我一个与您交流的机会!
//////////////////////////////////////////////
MSN:[email protected]请给我一个与您交流的机会!
{
window.alert ("请输入!");
gnmssq.textfield1.focus();
return false
}
if (document.gnmssq.textfield1.value.length<=60)
{
window.alert("长度不能小于60");
gnmssq.textfield1.focus();
return false
}
//////////////////////////////////////////////
MSN:[email protected]请给我一个与您交流的机会!
System.Text.Encoding.Unicode.GetBytes(chrInputString, i, 1);
{
int Result = 0;
char[] chrInputString = InputString.ToCharArray();
for (int i = 0; i < chrInputString.Length; i++)
{
byte[] bytInputString = System.Text.Encoding.Unicode.GetBytes(chrInputString, i, 1);
if (bytInputString.Length == 2)
{
if (bytInputString[1] != 0)
{
Result += 2;
}
else
{
Result++;
}
}
}
return Result;
}程序还要我解释不?if (bytInputString[1] != 0)这个情况就是全角情况
{
MessageBox.Show("对不起,超过60字节长度了 - -!");
}