选择显示字体大小

java中使用正则表达式验证本地化数据


  数据验证是编写任何用户界面时经常要处理的一项杂务。java? 语言的正则表达式支持可以使数据验证变得更容易。您可以定义一个正则表达式,用于描述有效数据,然后让 java 运行时检查它是否匹配。但是有些类型的数据在不同地区有不同的格式。 而 resourcebundle 类让您可以以一种优雅的方式使用特定于地区的数据。本文展示如何结合这两种技术来解决常见的数据输入问题。

  本文讨论将正则表达式与 java resourcebundle 相结合的一种数据验证技术。java 语言对正则表达式的支持可以大大简化数据验证。您可以将数据与正则表达式进行比较,如果它们匹配,则知道数据是有效的。另一方面,java resourcebundle 包含翻译好的字符串,用于匹配用户机器上的当前语言和国家设置。resourcebundle 中的字符串通常是出现在应用程序中的文本,但是也可以是特定于某个地区的任何东西。

  您将实践一个示例应用程序,该应用程序从 resourcebundles 获得正则表达式,并将它们用于数据验证。通过这种方法,就可以用一块代码来验证很多不同类型的数据。更妙的是,随着更多 resourcebundle 的添加,还可以验证更多类型的数据,并且不用更改这段代码中的任何一行。

  本文的示例应用程序是在 eclipse 中用 visual editor 构建的。visual editor 是一种用于构建图形化界面的开放源码工具。为了构建自己的应用程序,您需要在计算机上安装 eclipse 和 visual editor 包。这个示例应用程序只是举例说明了验证数据的一种技巧,所以这种方法可用于任何 java 应用程序。

  示例应用程序

  我不想花太多的时间讨论这个示例应用程序的所有细节,我只关注其中的数据验证方面的技巧。这个应用程序验证输入到输入域中的邮政编码。您可能知道,在世界的不同地方,邮政编码千差万别。有的是数字,有的则包含字母。即使同是由数字组成的邮政编码,在不同地方其长度也不尽相同。有的国家以特定的模式排列字母和数字,而另外一些国家则采用更自由的格式。所有这些格式都可以用正则表达式来描述。例如,在美国邮政编码是一个五位数,后面还可能跟有一个破折号加一个四位数。清单 1 展示了描述这种格式的正则表达式:

清单 1. 用于美国邮政编码的正则表达式

 [0-9]{5}(-[0-9]{4})? 

  除了格式不同外,邮政编码并不总是被称为邮政编码。例如,美国将邮政编码称为 zip code。resourcebundle 的一种常见用法就是处理这种类型的与地区有关的差异。用于美国的 resourcebundle 可能包含短语 "enter your zip code",而在用于加拿大的 resourcebundle 中,相应的短语可能是 "enter your postal code"。我在本文中演示的技巧也是从 resourcebundle 获得用于有效邮政编码的正则表达式。

  为了使这个示例简单化,您将创建一个只有一个输入域和一个 validate 按钮的 swing 应用程序。用户在输入域中输入文本,然后单击该按钮。如果数据与当前的正则表达式匹配,则应用程序显示一条消息,表明邮政编码有效。因为应用程序使用不同的 resourcebundle,所以正则表达式随着有效数据的规则的变化而变化。由于正则表达式是从文本文件中装载的一个字符串,所以当添加对新类型的邮政编码的支持时,不需要更改代码。

  您将在 eclipse 中使用 eclipse visual editor 和 eclipse java development tool 的一些特性来构建这个应用程序。您可以在几乎所有开发环境中使用这种技巧。这里的代码应该可以在任何基于 eclipse 的产品中运行,例如 rational application developer。

图 1 展示了该应用程序在 eclipse visual editor 中的样子:

图 1. eclipse visual editor 中的示例应用程序


  visual editor 提供了四种查看应用程序的方式。在屏幕的顶端是应用程序的可视化图像,源代码在底端。eclipse 还提供了两个视图 —— properties 视图java beans 视图 —— 可以通过这两个视图来处理应用程序。所有这些查看应用程序的方式都是由 eclipse modeling framework (emf) 控制的。由于已经有一些关于 emf 的完整书籍,所以我不会再谈更多的细节。从程序员的角度来看,重要的一点是,任何视图中的变化都会自动发送到其他视图。例如,如果您使用 properties 视图将一个对象的背景颜色设为绿色,那么可视化图像和源代码也会自动更新。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons