用js在前台捕捉对TextBox的keydown事件,如果不是数字,则不允许输入
后台用这个函数操作已经输入的字符串 ,返回值为指定格式
private string ConvertNum()
{
string s=控件ID.Text.Trim();
if(s.Lenth!=10)
{
Response.Write("<script>alert('号码长度错误!');</script>");//长度不为10,报错
return;
}
return s.Insert(3,"-").Insert(7,"-");
}
后台用这个函数操作已经输入的字符串 ,返回值为指定格式
private string ConvertNum()
{
string s=控件ID.Text.Trim();
if(s.Lenth!=10)
{
Response.Write("<script>alert('号码长度错误!');</script>");//长度不为10,报错
return;
}
return s.Insert(3,"-").Insert(7,"-");
}
函数改为:private string ConvertNum()
{
string s=控件ID.Text.Trim().Replace(",",""); if(s.Lenth!=10)
{
Response.Write("<script>alert('号码长度错误!');</script>");//长度不为10,报错
return;
}
return s.Insert(3,"-").Insert(7,"-");
}
这个是整体的函数,不需要页面的js判断
直接将用户输入的文本做参数输入
然后该函数进行判断,合法则返回处理后的号码
不合法则提示错误
private string ConvertNum(string s)
{
string s=s.Replace(",","");
if(s.Lenth!=10)
{
Response.Write("<script>alert('号码长度错误!');</script>");//长度不为10,报错
return;
}
System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
byte[] bytestr = ascii.GetBytes(s);
foreach (byte c in bytestr)
{
if (c < 48 || c > 57)
{
Response.Write("<script>alert('输入不全为数字!');</script>");//长度不为10,报错
return;
}
}
return s.Insert(3,"-").Insert(7,"-");
}
{
text = text.Replace(",", ""); if (text.Length != 10)
{
Response.Write("<script>alert('号码长度错误!');</script>");//长度不为10,报错
return "";
}
return int.Parse(text).ToString("000-000-0000");
}
{
string num="";
char ch;
System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
byte[] bytestr = ascii.GetBytes(s);
for (int i = 0; i < bytestr.Length;i++ )
{
if (bytestr[i] >= 48 && bytestr[i] <= 57)
{
ch =(char) bytestr[i];
num += ch;
}
}
if (num.Length != 10)
return "0";
return num.Insert(3, "-").Insert(7, "-");
}
这个可以了,客户甚至可以输入字母
如果长度不为10 则返回一个"0"
{
var phone=phone;
var phoneWord;
var list=new Array(phone.length);
var phoneList=new Array(11);
if(phone.length>=10)
{
for(int i=0;i<phone.length;i++)
{
list[i]=phone.charAt(i);
if(match(list[i])==match(\d))
{
phoneList[i]=list[i];
}
}
for(int j=0;j<phoneList.length;j++)
{
if(phoneList[i]!="")
{
phoneWord=phoneList[i];
}
}
phoneWord=subString(phoneWord,3).concat(subString(phoneWord,3),"-")+phoneWord.sline(4,6))+"-"+phoneWord.sline(7,10);
return phoneWord;
}
}
这是我写的,里面有很多错误,大家给挑下错吧(要求必须是函数)因为好几个地方用到
这样通用性不是很好
你单独写一个类
类里写个静态方法要好很多
在任意地方(只要引入了该类的命名空间)
你要得到的号码=类名.方法名(用户输入的文本);public static string ConvertNum(string s)
{
string num="";
char ch;
System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
byte[] bytestr = ascii.GetBytes(s);
for (int i = 0; i < bytestr.Length;i++ )
{
if (bytestr[i] >= 48 && bytestr[i] <= 57)
{
ch =(char) bytestr[i];
num += ch;
}
}
if (num.Length != 10)
return "0";
return num.Insert(3, "-").Insert(7, "-");
}
System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding();
这个是什么意思?
转为ASCII码值吗?