zoukankan
html css js c++ java
Ext 之 getimages.jsp
get-images.jsp:
<%
@page
import
=
"
utils.*
"
%>
<%
@page
import
=
"
java.io.*
"
%>
<%
@page
import
=
"
bean.Images
"
%>
<%
@ page
import
=
"
java.util.*,org.json.*
"
%>
<%
ArrayList array
=
new
ArrayList();
try
{
File dir
=
new
File(
"
D:/ext/examples/view/images/thumbs
"
);
String[] fs
=
dir.list();
for
(
int
i
=
0
; i
<
fs.length; i
++
)
{
if
(Regexp.isSoftRegexpValidate(fs[i].toString(),Regexp.icon_regexp) )
{
Images img
=
new
Images(
"
test
"
,
"
tews
"
,
"
images//thumbs//
"
+
fs[i],fs[i]);
array.add(img);
}
}
}
catch
(Exception e)
{
e.printStackTrace();
}
String[] param
=
{
"
name
"
,
"
size
"
,
"
url
"
,
"
lastmod
"
}
;
JsonHelper jsonHelper
=
new
JsonHelper();
out.println(jsonHelper.toString(
"
images
"
,array, param));
%>
Regexp.java
package
utils;
import
java.util.ArrayList;
import
java.util.HashMap;
import
java.util.List;
import
java.util.Set;
import
java.util.TreeSet;
import
org.apache.oro.text.regex.MalformedPatternException;
import
org.apache.oro.text.regex.PatternCompiler;
import
org.apache.oro.text.regex.PatternMatcher;
import
org.apache.oro.text.regex.Perl5Compiler;
import
org.apache.oro.text.regex.Perl5Matcher;
/** */
/**
* 类简介: 使用正则表达式验证数据或提取数据,类中的方法全为静态的 主要方法:
* 1. isHardRegexpValidate(String source, * String regexp) 区分大小写敏感的正规表达式批配
* 2. isSoftRegexpValidate(String source, String * regexp) 不区分大小写的正规表达式批配
* 3. getHardRegexpMatchResult(String source, String * regexp) 返回许要的批配结果集(大小写敏感的正规表达式批配)
* 4. getSoftRegexpMatchResult(String source, String regexp) 返回许要的批配结果集(不区分大小写的正规表达式批配)
* 5 getHardRegexpArray(String source, * String regexp) 返回许要的批配结果集(大小写敏感的正规表达式批配)
* 6. getSoftRegexpMatchResult(String * source, String regexp) 返回许要的批配结果集(不区分大小写的正规表达式批配)
* 7.getBetweenSeparatorStr(final String originStr,final char leftSeparator,final char rightSeparator) 得到指定分隔符中间的字符串的集合
*
* @mail wuzhi2000@hotmail.com
*
@author
ygj
*
*/
public
final
class
Regexp
{
/** */
/**
保放有四组对应分隔符
*/
static
final
Set SEPARATOR_SET
=
new
TreeSet();
{
SEPARATOR_SET.add(
"
(
"
);
SEPARATOR_SET.add(
"
)
"
);
SEPARATOR_SET.add(
"
[
"
);
SEPARATOR_SET.add(
"
]
"
);
SEPARATOR_SET.add(
"
{
"
);
SEPARATOR_SET.add(
"
}
"
);
}
/** */
/**
存放各种正规表达式(以key->value的形式)
*/
public
static
HashMap regexpHash
=
new
HashMap();
/** */
/**
存放各种正规表达式(以key->value的形式)
*/
public
static
List matchingResultList
=
new
ArrayList();
private
Regexp()
{
}
/** */
/**
* 返回 Regexp 实例
*
*
@return
*/
public
static
Regexp getInstance()
{
return
new
Regexp();
}
/** */
/**
* 匹配图象
*
*
* 格式: /相对路径/文件名.后缀 (后缀为gif,dmp,png)
*
* 匹配 : /forum/head_icon/admini2005111_ff.gif 或 admini2005111.dmp
*
*
* 不匹配: c:/admins4512.gif
*
*/
public
static
final
String icon_regexp
=
"
^(/{0,1}\\w){1,}\\.(gif|dmp|png|jpg)$|^\\w{1,}\\.(gif|dmp|png|jpg)$
"
;
/** */
/**
* 匹配email地址
*
*
* 格式: XXX@XXX.XXX.XX
*
* 匹配 : foo@bar.com 或 foobar@foobar.com.au
*
*
* 不匹配: foo@bar 或 $$$@bar.com
*
*/
public
static
final
String email_regexp
=
"
(?:\\w[-._\\w]*\\w@\\w[-._\\w]*\\w\\.\\w{2,3}$)
"
;
/** */
/**
* 匹配匹配并提取url
*
*
* 格式: XXXX://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX
*
* 匹配 :
http://www.suncer.com
或news://www
*
*
* 提取(MatchResult matchResult=matcher.getMatch()): matchResult.group(0)=
*
http://www.suncer.com
:8080/index.html?login=true matchResult.group(1) =
* http matchResult.group(2) = www.suncer.com matchResult.group(3) = :8080
* matchResult.group(4) = /index.html?login=true
*
* 不匹配: c:\window
*
*/
public
static
final
String url_regexp
=
"
(\\w+)://([^/:]+)(:\\d*)?([^#\\s]*)
"
;
/** */
/**
* 匹配并提取http
*
*
* 格式:
http://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX
或 ftp://XXX.XXX.XXX 或
*
https://XXX
*
* 匹配 :
http://www.suncer.com
:8080/index.html?login=true
*
*
* 提取(MatchResult matchResult=matcher.getMatch()): matchResult.group(0)=
*
http://www.suncer.com
:8080/index.html?login=true matchResult.group(1) =
* http matchResult.group(2) = www.suncer.com matchResult.group(3) = :8080
* matchResult.group(4) = /index.html?login=true
*
* 不匹配: news://www
*
*/
public
static
final
String http_regexp
=
"
(http|https|ftp)://([^/:]+)(:\\d*)?([^#\\s]*)
"
;
/** */
/**
* 匹配日期
*
*
* 格式(首位不为0): XXXX-XX-XX 或 XXXX XX XX 或 XXXX-X-X
*
*
* 范围:1900--2099
*
*
* 匹配 : 2005-04-04
*
*
* 不匹配: 01-01-01
*
*/
public
static
final
String date_regexp
=
"
^((((19){1}|(20){1})d{2})|d{2})[-\\s]{1}[01]{1}d{1}[-\\s]{1}[0-3]{1}d{1}$
"
;
//
匹配日期
/** */
/**
* 匹配电话
*
*
* 格式为: 0XXX-XXXXXX(10-13位首位必须为0) 或0XXX XXXXXXX(10-13位首位必须为0) 或
*
* (0XXX)XXXXXXXX(11-14位首位必须为0) 或 XXXXXXXX(6-8位首位不为0) 或
* XXXXXXXXXXX(11位首位不为0)
*
*
* 匹配 : 0371-123456 或 (0371)1234567 或 (0371)12345678 或 010-123456 或
* 010-12345678 或 12345678912
*
*
* 不匹配: 1111-134355 或 0123456789
*
*/
public
static
final
String phone_regexp
=
"
^(?:0[0-9]{2,3}[-\\s]{1}|\\(0[0-9]{2,4}\\))[0-9]{6,8}$|^[1-9]{1}[0-9]{5,7}$|^[1-9]{1}[0-9]{10}$
"
;
/** */
/**
* 匹配身份证
*
*
* 格式为: XXXXXXXXXX(10位) 或 XXXXXXXXXXXXX(13位) 或 XXXXXXXXXXXXXXX(15位) 或
* XXXXXXXXXXXXXXXXXX(18位)
*
*
* 匹配 : 0123456789123
*
*
* 不匹配: 0123456
*
*/
public
static
final
String ID_card_regexp
=
"
^\\d{10}|\\d{13}|\\d{15}|\\d{18}$
"
;
/** */
/**
* 匹配邮编代码
*
*
* 格式为: XXXXXX(6位)
*
*
* 匹配 : 012345
*
*
* 不匹配: 0123456
*
*/
public
static
final
String ZIP_regexp
=
"
^[0-9]{6}$
"
;
//
匹配邮编代码
/** */
/**
* 不包括特殊字符的匹配 (字符串中不包括符号 数学次方号^ 单引号' 双引号" 分号; 逗号, 帽号: 数学减号- 右尖括号> 左尖括号<
* 反斜杠\ 即空格,制表符,回车符等 )
*
*
* 格式为: x 或 一个一上的字符
*
*
* 匹配 : 012345
*
*
* 不匹配: 0123456
*
*/
public
static
final
String non_special_char_regexp
=
"
^[^'\
"
\\;,:
-<>
\\s].
+
$
"
;// 匹配邮编代码
/** */
/**
* 匹配非负整数(正整数 + 0)
*/
public
static
final
String non_negative_integers_regexp
=
"
^\\d+$
"
;
/** */
/**
* 匹配不包括零的非负整数(正整数 > 0)
*/
public
static
final
String non_zero_negative_integers_regexp
=
"
^[1-9]+\\d*$
"
;
/** */
/**
*
* 匹配正整数
*
*/
public
static
final
String positive_integer_regexp
=
"
^[0-9]*[1-9][0-9]*$
"
;
/** */
/**
*
* 匹配非正整数(负整数 + 0)
*
*/
public
static
final
String non_positive_integers_regexp
=
"
^((-\\d+)|(0+))$
"
;
/** */
/**
*
* 匹配负整数
*
*/
public
static
final
String negative_integers_regexp
=
"
^-[0-9]*[1-9][0-9]*$
"
;
/** */
/**
*
* 匹配整数
*
*/
public
static
final
String integer_regexp
=
"
^-?\\d+$
"
;
/** */
/**
*
* 匹配非负浮点数(正浮点数 + 0)
*
*/
public
static
final
String non_negative_rational_numbers_regexp
=
"
^\\d+(\\.\\d+)?$
"
;
/** */
/**
*
* 匹配正浮点数
*
*/
public
static
final
String positive_rational_numbers_regexp
=
"
^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$
"
;
/** */
/**
*
* 匹配非正浮点数(负浮点数 + 0)
*
*/
public
static
final
String non_positive_rational_numbers_regexp
=
"
^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$
"
;
/** */
/**
*
* 匹配负浮点数
*
*/
public
static
final
String negative_rational_numbers_regexp
=
"
^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
"
;
/** */
/**
*
* 匹配浮点数
*
*/
public
static
final
String rational_numbers_regexp
=
"
^(-?\\d+)(\\.\\d+)?$
"
;
/** */
/**
*
* 匹配由26个英文字母组成的字符串
*
*/
public
static
final
String letter_regexp
=
"
^[A-Za-z]+$
"
;
/** */
/**
*
* 匹配由26个英文字母的大写组成的字符串
*
*/
public
static
final
String upward_letter_regexp
=
"
^[A-Z]+$
"
;
/** */
/**
*
* 匹配由26个英文字母的小写组成的字符串
*
*/
public
static
final
String lower_letter_regexp
=
"
^[a-z]+$
"
;
/** */
/**
*
* 匹配由数字和26个英文字母组成的字符串
*
*/
public
static
final
String letter_number_regexp
=
"
^[A-Za-z0-9]+$
"
;
/** */
/**
*
* 匹配由数字、26个英文字母或者下划线组成的字符串
*
*/
public
static
final
String letter_number_underline_regexp
=
"
^\\w+$
"
;
/** */
/**
* 添加正规表达式 (以key->value的形式存储)
*
*
@param
regexpName
* 该正规表达式名称 `
*
@param
regexp
* 该正规表达式内容
*/
public
void
putRegexpHash(String regexpName, String regexp)
{
regexpHash.put(regexpName, regexp);
}
/** */
/**
* 得到正规表达式内容 (通过key名提取出value[正规表达式内容])
*
*
@param
regexpName
* 正规表达式名称
*
*
@return
正规表达式内容
*/
public
String getRegexpHash(String regexpName)
{
if
(regexpHash.get(regexpName)
!=
null
)
{
return
((String) regexpHash.get(regexpName));
}
else
{
System.out.println(
"
在regexpHash中没有此正规表达式
"
);
return
""
;
}
}
/** */
/**
* 清除正规表达式存放单元
*/
public
void
clearRegexpHash()
{
regexpHash.clear();
return
;
}
/** */
/**
* 大小写敏感的正规表达式批配
*
*
@param
source
* 批配的源字符串
*
*
@param
regexp
* 批配的正规表达式
*
*
@return
如果源字符串符合要求返回真,否则返回假 如: Regexp.isHardRegexpValidate("ygj@suncer.com.cn",email_regexp) 返回真
*/
public
static
boolean
isHardRegexpValidate(String source, String regexp)
{
try
{
//
用于定义正规表达式对象模板类型
PatternCompiler compiler
=
new
Perl5Compiler();
//
正规表达式比较批配对象
PatternMatcher matcher
=
new
Perl5Matcher();
//
实例大小大小写敏感的正规表达式模板
org.apache.oro.text.regex.Pattern hardPattern
=
compiler.compile(regexp);
//
返回批配结果
return
matcher.contains(source, hardPattern);
}
catch
(MalformedPatternException e)
{
e.printStackTrace();
}
return
false
;
}
/** */
/**
* 不区分大小写的正规表达式批配
*
*
@param
source
* 批配的源字符串
*
*
@param
regexp
* 批配的正规表达式
*
*
@return
如果源字符串符合要求返回真,否则返回假 Regexp.isHardRegexpValidate("ygj@suncer.com.cn",email_regexp) 返回真
*/
public
static
boolean
isSoftRegexpValidate(String source, String regexp)
{
try
{
//
用于定义正规表达式对象模板类型
PatternCompiler compiler
=
new
Perl5Compiler();
//
正规表达式比较批配对象
PatternMatcher matcher
=
new
Perl5Matcher();
//
实例不区分大小写的正规表达式模板
org.apache.oro.text.regex.Pattern softPattern
=
compiler.compile(regexp,Perl5Compiler.CASE_INSENSITIVE_MASK);
//
返回批配验证值
return
matcher.contains(source, softPattern);
}
catch
(MalformedPatternException e)
{
e.printStackTrace();
}
return
false
;
}
}
Images.java
package
bean;
public
class
Images
{
private
String name;
private
String size;
private
String lastmod;
private
String url;
public
Images()
{
}
public
Images(String size, String lastmod, String url,String name)
{
this
.size
=
size;
this
.lastmod
=
lastmod;
this
.url
=
url;
this
.name
=
name;
}
public
String getSize()
{
return
size;
}
public
void
setSize(String size)
{
this
.size
=
size;
}
public
String getUrl()
{
return
url;
}
public
void
setUrl(String url)
{
this
.url
=
url;
}
public
String getName()
{
return
name;
}
public
void
setName(String name)
{
this
.name
=
name;
}
public
String getLastmod()
{
return
lastmod;
}
public
void
setLastmod(String lastmod)
{
this
.lastmod
=
lastmod;
}
}
JsonHelper.java
package
utils;
import
java.util.ArrayList;
import
java.util.List;
import
org.json.JSONArray;
import
org.json.JSONObject;
import
bean.Images;
/** */
/**
* json工具类
* 使用方法
* toString()
*
@author
meetrice 2007-12-25 14:08:49
*
*/
public
class
JsonHelper
{
public
String toString(String root,List array, String[] param)
{
String result
=
new
String();
try
{
JSONArray jsonArray
=
new
JSONArray();
for
(
int
i
=
0
; i
<
array.size(); i
++
)
{
JSONReflectObject reflectObject
=
new
JSONReflectObject(array.get(i), param);
jsonArray.put(reflectObject);
}
result
=
new
JSONObject().put(root, jsonArray).toString();
}
catch
(Exception e)
{
}
return
result;
}
public
static
void
main(String[] args)
{
ArrayList array
=
new
ArrayList();
Images maryLebow
=
new
Images(
"
2342
"
,
"
234234234
"
,
"
images//thumbs//zack_dress.jpg
"
,
"
zack_dress.jpg
"
);
Images amySmith
=
new
Images(
"
2342
"
,
"
234234234
"
,
"
images//thumbs//zack_dress.jpg
"
,
"
zack_dress.jpg
"
);
Images johnKim
=
new
Images(
"
2342
"
,
"
234234234
"
,
"
images//thumbs//zack_dress.jpg
"
,
"
zack_dress.jpg
"
);
array.add(maryLebow);
array.add(amySmith);
array.add(johnKim);
String[] param
=
{
"
name
"
,
"
size
"
,
"
url
"
,
"
lastmod
"
}
;
JsonHelper jsonHelper
=
new
JsonHelper();
System.out.println(jsonHelper.toString(
"
images
"
,array, param));
}
}
查看全文
相关阅读:
当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'tb_User' 中的标识列插入显式值。
版本控制器Vss和svn
判断浏览器刷新与关闭的代码
web开发过程中要注意的问题(二)【转】
JS版include函数
兼容FF/IE的添加收藏夹的代码
jQuery技巧总结
把JS与CSS写在同一个文件里
CSS hack浏览器兼容一览表
利用JS获取IE客户端IP及MAC的实现
原文地址:https://www.cnblogs.com/meetrice/p/1216736.html
最新文章
一个网站的诞生 MagicDict开发总结2 [ACCESS的烦恼]
[你必须知道的.NET]第十五回:继承本质论 观后感
未经任何测试的源代码开放
用户和组 win2003
[教程] 乐PAD A1 2G版 如何 挂地图
用Ant实现Java项目的自动构建和部署
Google Chrome浏览器调试
struct 入门
struts 1.2配置文件
kuaijie
热门文章
NHibernate + MVC
浅析JSP入侵中的SQL注入之1'or'1'='1
flex 编译自动
PowerDesigner数据库设计
ref与out
jquery 获取指定元素
jquery 动态创建元素
jquery操作"元素属性"
jquery 子元素过滤器 Child Filters
html里title属性换行的方法
Copyright © 2011-2022 走看看