js格式化字符串(就是加空格),请问我写的代码怎么改正?

昵称是可以中文吗 2013-04-23 09:54:18
假定没有内容,我就返回8个空格,有就左对齐,请问下面的代码错在哪?没内容返回没错,但是传中文和英文返回的两个长度不一样(对齐出错)

function getString(myString) {
if (myString.length == 0)
{
for (var i = 0; i < 8; i++)
myString+= " ";

}
else {

var cutLength = 8- myString.length;
for (var i = 0; i < cutLength; i++)
myString+= " ";
}
return myString;
}
...全文
944 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
functionsub 2013-04-24
  • 打赏
  • 举报
回复
有些字体会影响到一个英文字母实际的宽度,比如i跟W,理论上应该是一样的, 但是有些字体下,i比W要短很多,这个没什么好办法解决。
  • 打赏
  • 举报
回复
引用 4 楼 functionsub 的回复:
不要直接str+= ' ',改成str+='&nbsp;'试试 楼主的问题主要是中文一般是站2个字符长度的问题,判断有中文的时候少加一个空格就是了。
出现三个字母(length=3)的布局等于两个汉字(length=2),只是什么情况
functionsub 2013-04-24
  • 打赏
  • 举报
回复
不要直接str+= ' ',改成str+=' '试试 楼主的问题主要是中文一般是站2个字符长度的问题,判断有中文的时候少加一个空格就是了。
似梦飞花 2013-04-24
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <script type="text/javascript"> var x=0; function getString(myString) { if (myString.length == 0) { for (var i = 0; i < 8; i++) myString+= " "; } else { var reg=/[\u4e00-\u9fa5]/g; var k=myString.match(reg); if(!k){ k=0; }else{ k=k.length; } k=myString.length+k; var cutLength = 8-k; for (var i = 0; i < cutLength; i++) myString+=" "; myString+='over'; document.getElementsByTagName('pre')[x++].innerHTML=myString; } return myString; } window.onload=function(){getString('123');getString('奥尔是')}; </script> </head> <body> <pre></pre> <pre></pre> </body> </html> ie8不行 dom元素把多个空格当做一个空格处理了 貌似
  • 打赏
  • 举报
回复
引用 1 楼 zzgzzg00 的回复:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-……
左对齐,右边不够不空格
似梦飞花 2013-04-24
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <script type="text/javascript"> function getString(myString) { if (myString.length == 0) { for (var i = 0; i < 8; i++) myString+= " "; } else { var reg=/[\u4e00-\u9fa5]/g; var k=myString.match(reg); if(!k){ k=0; }else{ k=k.length; } k=myString.length+k; alert(k); var cutLength = 8-k; for (var i = 0; i < cutLength; i++) myString=" "+myString; } return myString; } alert(getString('123')+"\n"+getString('奥尔是')); </script> </head> <body> </body> </html> 你是说右对齐吧?

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧