`
sillycat
  • 浏览: 2553750 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

HTML过滤和补齐(三)

    博客分类:
  • JAVA
阅读更多

/**
* 字符串长度是否大于limit,汉字长度算2,其他1 大于返回false,小于等于返回true
*
* @param t
* @param limit
* @return
*/
public static boolean checkStringLength(String t, int limit) {
   if (StringUtil.isBlank(t)) {
    return true;
   }
   return (t.getBytes().length <= limit);
}

/**
* 替换str在p中出现的
*
* @param str
* @param p
* @return
*/
public static String replaceAllForIcon(String str, Map p) {
   if (p == null) {
    return str;
   }

   String ret = str;

   try {
    for (Iterator it = p.keySet().iterator(); it.hasNext();) {
     String key = (String) it.next();
     String val = (String) p.get(key);

     ret = StringUtil.replace(ret, key, "<img src=\"" + val + "\">");
    }
   } catch (Exception e) {
    return ret + "<!-- " + e.getMessage() + " -->";
   }

   return ret;
}

/**
* 得到日期的格式
*
* @param date
* @param format
* @return
*/
public static String getStringFromDate(Date date, String format) {
   if (date == null) {
    date = new Date();
   }

   String s = "";

   try {
    Locale locale = Locale.CHINESE;

    if (format == null) {
     format = "yyyy年MM月dd日 HH点mm分ss秒";
    }

    DateFormat formatter = new SimpleDateFormat(format, locale);

    s = formatter.format(date);
   } catch (Exception e) {
    DateFormat f = DateFormat.getDateInstance();

    s = f.format(date);
   }

   return s;
}

/**
* 得到日期的格式
*
* @param date
* @return
*/
public static String getStringFromDate(Date date) {
   return getStringFromDate(date, null);
}

/**
* 将字符串中的http链接转化为html的链接表现 即加上&lt;a href...&lt;/a&gt;
*
* @param input
*
* @return
*/
public static String escapeURLsInHTML(String input) {
   String output = input;

   if (StringUtil.isBlank(input)) {
    return input;
   }

   if (escapeURLsInHTMLPattern == null) {
    return input;
   }

   try {
    PatternMatcher matcher = new Perl5Matcher();
    PatternMatcherInput mpi = new PatternMatcherInput(input);
    int i = 0;

    while (matcher.contains(mpi, escapeURLsInHTMLPattern)) {
     i++;

     // MatchResult result = matcher.getMatch();

     // System.out.println(result.group(1));
     output = Util.substitute(matcher, escapeURLsInHTMLPattern,
       new Perl5Substitution(
         "<a href=\"$1\" target=_blank>$1</a>"), input,
       Util.SUBSTITUTE_ALL);

     // System.out.println("........."+output);
    }

    return output;
   } catch (Exception e) {
    return input;
   }
}

/**
* 替换文字中的链接
*
* @param input
* @return
*/
public static String escapeUrlHtml(String input) {
   String output = escapeURLsInHTML(escapeHTML(input));

   return output;
}

/**
* 判断是否是空
*
* @param obj
* @return
*/
public static boolean isEmpty(Object obj) {
   if (obj == null) {
    return true;
   }
   return StringUtil.isEmpty(obj.toString());
}

/**
* 判断是否非空
*
* @param obj
* @return
*/
public static boolean isNotEmpty(Object obj) {
   return !isEmpty(obj);
}

/**
* 检验str中是否包含word
*
* @param str
* @param word
* @return
*/
public static boolean isContain(String str, String word) {
   if (str == null) {
    return false;
   }

   if (word == null) {
    return true;
   }

   return str.indexOf(word) >= 0;
}

/**
* 返回str中是否包含word,如果包含,返回word,否则返回null
*
* @param str
* @param word
* @return
*/
public static String getIsContain(String str, String word) {
   if (str == null) {
    return null;
   }

   if (word == null) {
    return null;
   }

   if (str.indexOf(word) >= 0) {
    return word;
   }
   return null;
}

/**
* 检验str中是否包含words中的一个
*
* @param str
* @param words
* @return
*/
public static boolean isContain(String str, Set words) {
   if (str == null) {
    return false;
   }

   if ((words == null) || (words.size() == 0)) {
    return true;
   }

   for (Iterator it = words.iterator(); it.hasNext();) {
    String test = it.next().toString();

    if ((test != null) && (test.length() > 0)
      && (str.indexOf(test) >= 0)) {
     return true;
    }
   }

   return false;
}

/**
* 替换文字中的关键字
*
* @param str
* @param replacer
* @return
*/
public static String replaceAll(String str, Set replacer) {
   if (StringUtil.isBlank(str)) {
    return "";
   }

   if ((replacer == null) || (replacer.size() == 0)) {
    return str;
   }

   Perl5Compiler cp = new Perl5Compiler();
   Perl5Matcher m = new Perl5Matcher();
   Pattern pt = null;
   String output = str;

   for (Iterator it = replacer.iterator(); it.hasNext();) {
    String[] r = (String[]) it.next();

    if (r.length != 2) {
     continue;
    }

    try {
     pt = cp.compile(r[0]);
    } catch (Exception e) {
     continue;
    }

    if ((pt != null) && m.contains(output, pt)) {
     output = Util.substitute(m, pt, new Perl5Substitution(r[1]),
       output, Util.SUBSTITUTE_ALL);
    }
   }

   return output;
}

/**
* 返回str中第一个包含的words中的字符,支持正则表达式
*
* @param str
* @param words
* @return
*/
public static String getIsContain(String str, Set words) {
   if (str == null) {
    return null;
   }

   if ((words == null) || (words.size() == 0)) {
    return null;
   }

   Perl5Compiler cp = new Perl5Compiler();
   Perl5Matcher m = new Perl5Matcher();
   Pattern pt = null;

   for (Iterator it = words.iterator(); it.hasNext();) {
    String test = it.next().toString();

    if ((test != null) && (test.length() > 0)) {
     try {
      pt = cp.compile(test);
     } catch (Exception e) {
      continue;
     }

     if (m.contains(str, pt)) {
      return m.getMatch().toString();
     }
    }
   }

   return null;
}
分享到:
评论

相关推荐

    百度自动补齐

    **百度自动补齐**是一种常见的前端开发技术,主要应用于搜索引擎或者输入框中,为用户提供智能预测和建议,提高输入效率。这种功能通常被称为自动补全(Autocomplete)或自动完成(Auto-complete)。在JavaScript中...

    jQuery实现自动补齐

    "jQuery实现自动补齐"这个主题,主要涉及的是如何利用jQuery来创建一个功能强大的输入框自动完成功能,这在网页表单设计中十分常见,尤其对于搜索框或用户输入数据的场景,可以显著提升用户体验。 自动完成功能通常...

    PHP实现网页内容html标签补全和过滤的方法小结【2种方法】

    本文实例讲述了PHP实现网页内容html标签补全和过滤的方法。分享给大家供大家参考,具体如下: 如果你的网页内容的html标签显示不全,有些表格标签不完整而导致页面混乱,或者把你的内容之外的局部html页面给包含进去了...

    jquery自动补齐插件.zip

    1. 过滤与匹配:通过`match`属性可以设置匹配规则,如忽略大小写、只匹配开头等。 2. 提示框样式:可以使用CSS自定义提示框的样式,如宽度、颜色、边距等。 3. 错误处理:当请求失败时,可以使用`error`回调进行...

    jQuery实现Twitter的自动文字补齐特效

    **jQuery实现Twitter的自动文字补齐特效** 在网页开发中,为用户提供友好的输入体验是至关重要的,其中一种常见的方式就是实现自动文字补全功能。这种功能常见于搜索引擎、社交媒体平台等,比如Twitter。jQuery,一...

    java实现自动补全功能

    - 前端的HTML、CSS和JavaScript文件,用于实现自动补全的界面和交互逻辑。 - 可能还会有数据库配置文件、Maven或Gradle的构建文件等。 总的来说,通过结合Java的后端处理能力和AJAX的实时通信特性,我们可以构建一...

    angularJs自定义过滤器实现手机号信息隐藏的方法

    然后,它使用substr方法截取手机号的前部分,并用重复的星号字符串补齐到指定长度,最终返回被隐藏处理过的手机号字符串。 6. 数据展示:在HTML模板中,通过使用过滤器标记(|)和过滤器名称(truncate),以及传递...

    基于PHP的田字格笔顺字帖在线生成器php源码.zip

    开发者可能使用了过滤函数、参数绑定、XSS防护等措施来防止恶意攻击。 8. **响应式设计**:为了适应不同设备和屏幕尺寸,源码可能采用了响应式布局,利用媒体查询等技术确保在手机、平板和电脑上都能良好显示。 9....

    nginx-1.3.13

    nginx/Windows使用工作目录作为前缀将配置文件中设置的相对目录补齐。就上面安装的例子而言,工作目录应该是C:\nginx-1.3.13\(工作目录基本上与运行文件所在的目录相同)。配置文件中的目录请使用“/”,而不是“\...

    Shopxp网上购物系统 v10.85 免费版.rar

    评论对不齐、以及打开新品和特价等页面的布局bug; 支持单独设置管理员自定义页面管理权限; 会员登录名字大小写不同,管理文章时出错; 过滤保存关键字时出现空关键字的情况; 用户注册判断用户名长短,是否禁止...

    苹果8XPC和手机二合一完整版

    template/user/ 为系统会员中心的模版及相关css和js ****************************模板规范化管理 结束**************************** ****************************系统内置JS、CSS说明 开始*******************...

    网页文章采集工具-易语言

    (源码)软件简介: ...1、在核心功能—&gt;提取链接这个子程序中,对于HTTP网址是否需要补齐根域名存在1个判断BUG。 2、在核心功能 —&gt; 提取源码这个子程序中,对于网页是否为UTF8格式判断存在会漏掉的BUG。

    net学习笔记及其他代码应用

    //请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。 } } } 答:if( OnNew != null ) OnNew( this, e ); 27.分析以下代码,完成填空 string strTmp = \"abcdefg某某某\"; int i= System.Text....

Global site tag (gtag.js) - Google Analytics