VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 753|回复: 2

关于验证控件如何验证中文以及全角的问题?

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-17 12:00:01 | 显示全部楼层 |阅读模式
我发现网页中表单的一些验证控件只对半角的验证有效,比如说用户名是RE控件,我用w{4,16}的正则表达式验证,结果用户名用半角的字母都没问题,当时我用户名输入汉字的时候,无论多少都报错,还有比如验证email以及数字的SingelText的Value时,输入全角的数字或者字母字符都验证不过,请问有办法解决这样的问题吗?或者不管他输入什么,我验证的时候都换成半角的字符?不知道怎么办,高人指点。
回复

使用道具 举报

0

主题

73

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-1-22 18:36:02 | 显示全部楼层
/[\u0000-\u00FF]/ 半角符号

/[\u4E00-\u9FA5]/ 汉字

/[\uFF00-\uFFFF]/ 全角符号

用正则验证吧
回复

使用道具 举报

0

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-22 17:00:01 | 显示全部楼层
/// <summary>
/// 半角转全角
/// </summary>
/// <param name="BJstr"></param>
/// <returns></returns>
static public string GetQuanJiao(string BJstr)
{
#region
char[] c = BJstr.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
if (b.Length == 2)
{
if (b[1] == 0)
{
b[0] = (byte)(b[0] - 32);
b[1] = 255;
c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
}
}
}

string strNew = new string(c);
return strNew;

#endregion
}

/// <summary>
/// 全角转半角
/// </summary>
/// <param name="QJstr"></param>
/// <returns></returns>
static public string GetBanJiao(string QJstr)
{
#region
char[] c = QJstr.ToCharArray();
for (int i = 0; i < c.Length; i++)
{
byte[] b = System.Text.Encoding.Unicode.GetBytes(c, i, 1);
if (b.Length == 2)
{
if (b[1] == 255)
{
b[0] = (byte)(b[0] + 32);
b[1] = 0;
c[i] = System.Text.Encoding.Unicode.GetChars(b)[0];
}
}
}
string strNew = new string(c);
return strNew;
#endregion
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表