All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
MS-SQL数据库开发—精典_[SQL,Server教程]
用DHTML中的Popup,Object跨框架显示菜单_JavaScript技术_编程技术
经典php实现大文件上传源代码_[PHP教程]
经典:10个重要的PHP网络信息函数说明_php资料_编程技术
.NET开发,正则表达式中的,Bug_.net资料_编程技术
ASP.NET,2.0,中好东西(theme)介绍_[Asp.Net教程]
asp.net2.0网站语法之服务器端文件包含
动态网页技术PHP的数组处理函数库_php资料_编程技术
将改变我们生活的这些XML应用_[XML教程]
简单介绍,ASP.NET,中的运算操作符_[Asp.Net教程]
Reading number is top 10 pictures
BingBingFan apple dew point photo gallery4
Summer is most suitable for young people to travel in China9
Fierce! China's special forces training the devil2
Household design of gorgeous series
Absolutely shocked. National geographic 50 animal photographys5
A man's favorite things3--ZhouWeiTong
Born After 90 Beijing sports university campus flower photos4
一千块钱如何创业
大四女生借债隆胸成功
夕阳下的北京街道
Download software ranking
Unix video tutorial9
WebService在.NET中的实战应用教学视频 → 第2集
Boxer Classic video2
在线棋牌游戏3.05版
Wild things 2
Unix video tutorial7
Tram sex maniac 2 (H) rar bag18
Rio big adventure
Visual C++界面编程技术
美女写真3
delv published in(发表于) 2013/12/31 6:39:17 Edit(编辑)
关于textarea的直观换行_JavaScript技术_编程技术

关于textarea的直观换行_JavaScript技术_编程技术

关于textarea的直观换行_JavaScript技术_编程技术-你的首页-uuhomepage.com







前两天研究了一下textarea的直观行的换行规律,挺复杂啊:




直观行怎样取不光要看cols大小,还要看网页编码方式。
cols="30"的textarea,实际上每行可以容纳29个半角字符,多少个全角字符就不一定了,与网页编码方式有关。
在IE6.0实测的情况,直观行的换行发生在红字处(红字折到下一行)。




dddddddddddd米ddddddddddddddddddddd //全角后面的连续半角内容被当成一个完整单词处理,如果剩下的位置容不下单词的长度了,就要换行,此为特殊规律A




网页按Unicode编码(“运行代码”的弹出页面即按此编码,JS生成的页面均按此编码)时的一般规律是




(“占满”是说后面无论再跟全角、半角字符,都得换行)




123456789012345678901234567890 //29半角占满
一二三四五六七八九十一二三四五六七九十 //17全角占满
一二三四五六七八九十一二三四五六七0八九十
一二三四五六七八九十一二三四五六0八九十
0一二三四五六七八九十一二三四五六1七八九十 //16全角,1半角占满
0一二三四五六七八九十一二三四五六八九十
0一二三四五六七八九十一二三四五1七八九十 //15全角,2半角后不可容全角
01一二三四五六七八九十一二三四五七八九十
01一二三四五六七八九十一二三四五2七八九十 //15全角,2半角后可再容1半角(多于1半角时按特殊规律A)
012一二三四五六七八九十一二三四五七八九十 //15全角,3半角占满
012一二三四五六七八九十一二三四五3六七八九十
0123一二三四五六七八九十一二三四六七八九十 //14全角,4半角后不可容全角
0123一二三四五六七八九十一二三四4六七八九十 //14全角,4半角后可再容1半角(多于1半角时按特殊规律A)
01234一二三四五六七八九十一二三四六七八九十 //14全角,5半角占满
01234一二三四五六七八九十一二三四5五六七八九十
012345一二三四五六七八九十一二三五六七八九十 //13全角,6半角后不可容全角
012345一二三四五六七八九十一二三6五六七八九十 //13全角,6半角后可容1半角(多于1半角时按特殊规律A)
0123456一二三四五六七八九十一二三五六七八九十 //13全角,7半角占满
0123456一二三四五六七八九十一二三7四五六七八九十
01234567一二三四五六七八九十一二四五六七八九十 //12全角,8半角占满
01234567一二三四五六七八九十一二8三四五六七八九十
012345678一二三四五六七八九十一三四五六七八九十 //11全角,9半角后不可容全角
012345678一二三四五六七八九十一9三四五六七八九十 //11全角,9半角后可再容1半角(多于1半角时按特殊规律A)
0123456789一二三四五六七八九十一三四五六七八九十 //11全角,10半角占满




……




0一二三四五六七八九十一二三四五12七八九十 //15全角,1半角后可再容2半角连续字符(多于2半角时按特殊规律A),此条可由15全角,3半角占满得出




……




0一二三四五六七八九十一二三四1234六七八九十 //14全角,1半角后可再容4半角连续字符(多于4半角时按特殊规律A),此条可由14全角,5半角占满得出




……




01一二三四五六七八九十一二三四234六七八九十 //14全角,2半角后可再容3半角连续字符(多于3半角时按特殊规律A),此条可由14全角,5半角占满得出




……
换行位置不仅与换行位置之前的整行文字有关,还与红字有关(往往全角文字是因为无法在上行末尾挤下才被折到下一行的)。




总结一下就有:




x全角,y半角占满 = x全角,y-1半角后不可容全角 = x全角,y-n半角后可再容n半角连续字符(多于n半角时按特殊规律A)。




所以做实验搞清楚所有“占满”的情形就可以了。




现将cols=30,网页按Unicode编码时的“占满”情况列出:




17全角
16全角,1半角
15全角,3半角
14全角,5半角
13全角,7半角
12全角,8半角
11全角,10半角
10全角,12半角
9全角,13半角
8全角,15半角
7全角,17半角
6全角,19半角
5全角,21半角
4全角,22半角
3全角,24半角
2全角,26半角
1全角,28半角
29半角




利用濒于发生按特殊规律A换行的情形,很容易测出所有“占满”的情形:




例如,一二三四五六七八九十012345678912二三四五六七八九十 //10全角,12半角占满。
一二三四五六七八九十0123456789123一二三四五六七八九 //红字处按特殊规律A换行,蓝字处按9全角,13半角占满换行




cols=30,网页按GB2312编码时,“占满”规律不同了:




14全角,1半角
13全角,3半角
12全角,5半角
11全角,7半角
10全角,9半角
9全角,11半角
8全角,13半角
7全角,15半角
6全角,17半角
5全角,19半角
4全角,21半角
3全角,23半角
2全角,25半角
1全角,27半角
29半角




这样的话,要根据网页的编码方式和cols,通过实验具体才能测出“占满”规律。




从textarea内容的开头起计算全角和半角字符的数目,根据“占满”规律及特殊规律A决定第一个直观换行的位置,再从第二行(包括物理行和直观行)起计算全角和半角字符的数目,根据“占满”规律及特殊规律A决定第二个直观换行的位置……如是继续下去,直到textarea内容的末尾。这样就可以得到所有的换行位置了。




当然实际应用时没必要也没可能这样做实验啦,比如说选中textarea的第X行到第Y行,还没了解官方的办法是怎样的,我是这么办的:




运行代码框










选中第行至第











[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]






















添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.