用Perl截取字符串,字符串中含有中文、英文、数字和各种符号,也包含中文标点符号,截取一定数量的字符,并且截取之后中文是完整的,不会出现乱码或问号。
sub makelen($$)
{
my($sstr,$slen)=@_;
my $makelen,$parity;
$mslen=length($sstr);
if($mslen>$slen)
{
for($mn=0;$mn<$slen;$mn++) #在要求的长度内
{
$ss=substr($sstr,$mn,1);
if(ord($ss)<127) #为英文
{
$parity+=1;
}
}
if($parity%2==1) #含英文长度为奇数
{
if($slen%2==1) #如果所要求的长度也为奇数
{
$tmpstr=substr($sstr,0,$slen);
}
else #所要求的长度为偶数
{
$tmpstr=substr($sstr,0,$slen-1);
}
}
else #含英文长度为偶数或者为0,0也为偶数
{
if($slen%2==1) #如果所要求的长度为奇数
{
$tmpstr=substr($sstr,0,$slen-1);
}
else #所要求的长度为偶数
{
$tmpstr=substr($sstr,0,$slen);
}
}
$makelen=$tmpstr;
}
else
{
$makelen=$sstr;
}
return $makelen;
}
中英文混合字符截取
来源:
作者:
时间:2007-07-10
Tag:
点击:
最新评论共有 4 位网友发表了评论
查看所有评论
发表评论
热点关注
- Perl用户自定义函数(子程
- 在Linux下,使用Perl发信
- Linux操作系统下安装Perl
- 用 Eclipse 构建 Perl 应
- windows下Perl开发环境的
- 如何安装DBI和DBD包
- curl+perl的自动分析程序
- Perl CGI 环境变量列表
- perl 调试工具 ptkdb 简单
- perl访问Oracle的环境搭建
- nagios学习手记2
- Perl学习之哈希 hash
- [perl]支持网段端口扫描
- perl中访问oracle10g入门
- 反弹shell use perl^_^
- 如何在Windows NT 4.0下安
- 每天提高一点 -- system "
- 将Perl文件的属性设成777
- 本机调试Web应用程序的几
- 如何在Win95/98/NT上调试C
