Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[疑难] 官方错误:火狐下长英文字母和数字换行错误

[复制链接]
huzf 发表于 2009-12-13 16:27:08 | 显示全部楼层 |阅读模式
先看图片(Firefox下错误,ie正常)
Untitled-2.gif
这是我测试的一张图片,目前firefox是不识别break-all属性的,所以碰到这种中文加长英文字母或数字的情况是无法换行的。
目前在最好的解决方法是加入<wbr />软换行标签,比如
100个b
  1. bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
复制代码
变换成
  1. bbbbbbbbb<wbr />bbbbbbbbb<wbr />bbbbbbbbb<wbr />bbbbbbbbb<wbr />bbbbbbbbb<wbr />bbbbbbbbb<wbr />bbbbbbbbb<wbr />bbbbbbbbb<wbr />bbbbbbbbb<wbr />bbbbbbbbb<wbr />bbbbbbbbb<wbr />b
复制代码
就能正常显示了,
我认为最好的解决思路是在提交的数据入库的时候就自动加入<wbr />标签,我用的是utf编码的,那么一个汉字等于三个字母,所以建议9个字符一组加入此标签,
在记录里有这样一段代码
  1. $message = preg_replace("/\[em:(\d+):]/is", "<img src="image/face/\\1.gif" class="face">", $message);
  2.         $message = preg_replace("/\<br.*?\>/is", ' ', $message);
复制代码
可以通过正则表达式在其下插入此标签,可惜小弟不会正则表达式,希望有哪位高人能写出来。
注意:考虑以下情况:汉字,英文单词,数字,下划线,特殊字符,还有过滤掉表情代码
回复

使用道具 举报

FBI_BBS 发表于 2009-12-13 16:47:59 | 显示全部楼层
楼主很细心。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-16 20:56 , Processed in 0.114854 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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