RSS
热门关键字:  java  Ajax  JSP  JSF  Struts
当前位置 : 首页>Ruby>列表

rails的UTF-8支持造成的正则表达式问题

来源: 作者: 时间:2007-09-19 点击:

rails的ActionView::Helpers::TextHepler模块提供了很多实用的方法,这些方法对于论坛类应用非常有用,例如auto_link这个方法可以自动检测传入字符串当中的URL,并将其自动转换为HTML超链接格式,这对于显示帖子的内容来说很不错。

但是在开发JavaEye3.0的时候,却发现auto_link有bug,一旦帖子当中的URL后面紧跟中文的话,auto_link就会把URL后面所有的中文当做URL的一部分进行格式化,直到碰到空格为止,例如:

 

引用
http://www.javaeye.com网站很不错

 

就会被格式化为:

 

引用
<a href="http://www.javaeye.com网站很不错">http://www.javaeye.com网站很不错</a>

 

看来得到rails的源代码里找答案了。

打开netbeans,敲快捷键Ctrl+O,在弹出窗口输入:texthelper,回车,netbeans已经帮我打开了text_helper.rb源代码,通过Navigator窗口,很方便的定位到auto_link方法,仔细看一下,原来主要是这个正则表达式在起作用:

 

ruby 代码
  1. AUTO_LINK_RE = %r{   
  2.                 (                          # leading text   
  3.                   <\w+.*?>|                # leading HTML tag, or   
  4.                   [^=!:'"/]|               # leading punctuation, or    
  5.                   ^                        # beginning of line   
  6.                 )   
  7.                 (   
  8.                   (?:https?://)|           # protocol spec, or   
  9.                   (?:www\.)                # www.*   
  10.                 )    
  11.                 (   
  12.                   [-\w]+                   

共5页: 上一页 1 [2] [3] [4] [5] 下一页
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册