| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 943 人关注过本帖
标题:求助 文本框数据的过滤
只看楼主 加入收藏
chenbaichao
Rank: 2
等 级:论坛游民
帖 子:152
专家分:20
注 册:2006-4-11
结帖率:100%
收藏
 问题点数:0 回复次数:1 
求助 文本框数据的过滤
各位大虾:
   你们好!
   如何能将输入在文本框中的非法字符过滤?
   另外,如何来判断日期和邮箱地址的格式是否正确?
   有这样的代码,请大虾教我,小弟感激不尽!!!!!!
搜索更多相关主题的帖子: 文本框 数据 
2008-06-10 21:39
longrm
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2007-6-18
收藏
得分:0 
非法字符过滤:遍历该字符串,发现非法字符就替换掉;

程序代码:
package org.longrm.forum.util;

public class ServletUtils {

    /**
     * 过滤输入串里的非法字符,保证安全
     * @param input
     * @return
     */
    public static String filter(String input) {
        if(!hasSpecialChars(input))
            return input;
        
        StringBuffer filtered = new StringBuffer(input.length());
        char c;
        for(int i=0; i<input.length(); i++) {
            c = input.charAt(i);
            // 这里将非法字符替换
            switch(c) {
            case '<':
                filtered.append("&lt;");
                break;
            case '>':
                filtered.append("&gt;");
                break;
            case '"':
                filtered.append("&quot;");
                break;
            case '&':
                filtered.append("&amp;");
                break;
            default:
                filtered.append(c);
            }
        }
        return filtered.toString();
    }
    
    private static boolean hasSpecialChars(String input) {
        boolean flag = false;
        if(input!=null && input.length()>0) {
            char c;
            for(int i=0; i<input.length(); i++) {
                c = input.charAt(i);
                switch(c) {
                case '<':
                    flag = true;
                    break;
                case '>':
                    flag = true;
                    break;
                case '"':
                    flag = true;
                    break;
                case '&':
                    flag = true;
                    break;
                }
            }
        }
        return flag;
    }
    
    /**
     * 空值替换
     * @param org
     * @param replace
     * @return
     */
    public static String replaceIfMissing(String org, String replace) {
        if( (org==null) || (org.equals("")) ) {
            return replace;
        }
        else
            return org;
    }
}


判断日期和邮箱地址的格式:使用正则表达式就ok了,这里写下判断邮箱的代码:

    var email = document.getElementById("email").value;
    var myReg = /^[-a-zA-Z0-9_\.]+@([0-9A-Za-z][0-9A-Za-z-]+\.)+[A-Za-z]{2,5}$/;
    if(myReg.test(email)){  // 成功
         ...

java群: 55919698

My blog: http://hi.baidu.com/longrm
2008-06-11 08:53
快速回复:求助 文本框数据的过滤
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016829 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved