如何校验是否输入全角字符!
解决方案 »
- c# Socket Send Receive 边界问题?求高手解决!
- 在pageload中如何设置treeview子节点的NavigateUrl
- 最近需要做不同数据库间的数据类型转换,请问谁能提供点相关资料参考啊?
- 有什么方法可以修改dll文件,用reflector导出修改后还能编译回去吗?
- crystalreport 预览与实际打印不一样
- 为什么这个地方给我返回的总是-1啊?我都快疯了!
- 关于自己的类数组实现按字符串检索
- C#初学者,很简单的一道题目
- VS2005创建的WEB服务项目发布到IIS定义的一个虚拟目录中后,在IIS中浏览不了啊,各位大哥大姐帮帮偶哦!
- 有关 DataGrid 和 DataSet …… ?
- 初学C#,请问什么工具比较适合,谢谢了
- 急求:小白求问一个小问题。。
http://topic.csdn.net/t/20040316/11/2848001.html引用一下:function ChgTitle($title)
{
$length = 46;
if (strlen($title)>$length) {
$temp = 0;
for($i=0; $i<$length; $i++)
if (ord($title[$i]) > 128)
$temp++;
if ($temp%2 == 0)
$title = substr($title,0,$length)."...";
else
$title = substr($title,0,$length+1)."...";
}
return $title;
}
原理就是截断一个字符,看看其ascII码是不是大于128,如果是,说明截断的是一个全角汉字,那么就退后一个截断。用$length控制长度
备注:循环判断字符串里面的 >128 的字符个数,如果半角字符为偶数,则表示位置刚好为整个汉字,如果为奇数,则为半个汉字,需要取下一个字符
{
System.Text.StringBuilder result = new System.Text.StringBuilder(source.Length, source.Length);
for (int i = 0; i < source.Length; i++)
{
if (source[i] >= 65281 && source[i] <= 65373)
{
result.Append((char) (source[i] - 65248));
}
else if (source[i] == 12288)
{
result.Append(' ');
}
else
{
result.Append(source[i]);
}
}
return result.ToString();
}
这也有个方法