`
panfugen
  • 浏览: 26162 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

正则表达式详解+GWT-EXT实例

阅读更多

1先来看看正则表达式的基本语法:

        1.1普通字符:字母、数字、汉字、下划线以及没有被定义特殊意义的标点符号

        1.2简单的转义字符:一些不便书写的字符,比如换行符,制表符等,使用 \n,\t 来表示。另外有一些标点符号在正则表达式中,被定义了特殊的意义,因此需要在前面加 "\" 进行转义后,匹配该字符本身。

                   1.2.1简单列举一下常用的特殊意义的转义符,方便查看

                        ^   匹配输入字符串的开始位置,如匹配本身则加转义符\ ,即\^(下同)

                        $   匹配输入字符串的结束位置 

                        ()   标记一个子字符串的开始和结束位置 

                        []   用来自定义能够匹配"多种字符"的表达式

                       {}   修饰匹配的次数

                        .     修饰匹配除了换行符(\n)以外的任意一个字符

                        ?    修饰匹配次数为 0 次或 1 次

                        +    修饰匹配次数为至少 1 次

                        *    修饰匹配次数为 0 次或任意次

                        |     左右两边表达式之间 "或" 关系

                     1.2.2  以上特殊意义的转义符具有的共同特征是:匹配本身均为加上转义符"\"

                     1.2.3  常用标准字符表达集合

                        .    小数点可以匹配除了换行符(\n)以外的任意一个字符

                        \w 可以匹配任何一个字母或者数字或者下划线(注w小写)

                        \W 可以匹配任何一个字母或者数字或者下划线以外的字符(注W大写)

                        \d  可以匹配0-9中的任意一个数字字符

                        \D  D大写可以匹配任何一个非数字字符

                    1.2.4  自定义字符集合

                       用中括号 [ ] 包含多个字符,可以匹配所包含的字符中的任意一个。同样,每次只能匹配其中一个

                       用中括号 [^ ] 包含多个字符,构成否定格式,可以匹配所包含的字符之外的任意一个字符。    

                            注:

                                    正则表达式中的特殊符号,如果被包含于中括号中,则失去特殊意义,但 \ [ ] : ^ - 除外。

                                    标准字符集合,除小数点(.)外,如果被包含于中括号中,自定义字符集合将包含该集合。
                                    比如:
[\d.\-+],将可以匹配数字,小数点和 + - 符号。(小数点和 + 号失去特殊意义)

                                    用减号相连的 2 个普通字符,自定义字符集合将包含该范围。
                                    比如:
[\dA-Fa-f],将可以匹配 0 - 9, A - F, a - f

2下面结合GWT-EXT的NumberField实现提示信息的自定义

    定义全局变量

 

Java代码 复制代码
  1. // 单价   
  2.    private NumberField unitPrice;   
  3.   
  4.    // 工艺费   
  5.    private NumberField craftFee;   
  6. // 石重量   
  7.    private NumberField stoneWeight;   
  8.   
  9.    // 总重   
  10.    private NumberField totalWeight;  
 // 单价
    private NumberField unitPrice;

    // 工艺费
    private NumberField craftFee;
 // 石重量
    private NumberField stoneWeight;

    // 总重
    private NumberField totalWeight;

    初始化

Java代码 复制代码
  1.  // 石重量   
  2.         this.stoneWeight = new NumberField();   
  3.         this.stoneWeight.setFieldLabel("石重(克拉)");   
  4.         this.stoneWeight.setMaxLength(10);   
  5. //响应光标离开输入框时的事件   
  6.         this.stoneWeight.addListener(Events.OnBlur, new Listener<BaseEvent>() {   
  7.             public void handleEvent(BaseEvent be) {   
  8.                 setFormat(stoneWeight, stoneWeight.getRawValue());   
  9.             }   
  10.         }); // 单价   
  11.         this.unitPrice = new NumberField();   
  12.         this.unitPrice.setFieldLabel("<font color='red'>*</font>单价");   
  13.         this.unitPrice.setAllowDecimals(true);   
  14.         this.unitPrice.setAllowBlank(false);   
  15.         this.unitPrice.setMaxLength(10);   
  16.         this.unitPrice.setFormat(NumberFormat.getDecimalFormat());   
  17.         this.unitPrice.addListener(Events.OnBlur, new Listener<BaseEvent>() {   
  18.             public void handleEvent(BaseEvent be) {   
  19.                 autoSetFormat(unitPrice, unitPrice.getRawValue());   
  20.             }   
  21.         });   
  22.   
  23.         // 工艺费   
  24.         this.craftFee = new NumberField();   
  25.         this.craftFee.setFieldLabel("<font color='red'>*</font>工艺费");   
  26.         this.craftFee.setAllowDecimals(true);   
  27.         this.craftFee.setAllowBlank(false);   
  28.         this.craftFee.setMaxLength(10);   
  29.         this.craftFee.setFormat(NumberFormat.getDecimalFormat());         
  30.         this.craftFee.addListener(Events.OnBlur, new Listener<BaseEvent>() {   
  31.             public void handleEvent(BaseEvent be) {   
  32.                 autoSetFormat(craftFee, craftFee.getRawValue());   
  33.             }   
  34.         });   
  35.   
  36.         // 石重量   
  37.         this.stoneWeight = new NumberField();   
  38.         this.stoneWeight.setFieldLabel("石重(克拉)");   
  39.         this.stoneWeight.setMaxLength(10);   
  40.         this.stoneWeight.addListener(Events.OnBlur, new Listener<BaseEvent>() {   
  41.             public void handleEvent(BaseEvent be) {   
  42.                 setFormat(stoneWeight, stoneWeight.getRawValue());   
  43.             }   
  44.         });   
  45.   
  46.         // 总重   
  47.         this.totalWeight = new NumberField();   
  48.         this.totalWeight.setFieldLabel("总重(克)");   
  49.         this.totalWeight.setMaxLength(10);   
  50.         this.totalWeight.addListener(Events.OnBlur, new Listener<BaseEvent>() {   
  51.             public void handleEvent(BaseEvent be) {   
  52.                 setFormat(totalWeight, totalWeight.getRawValue());   
  53.             }   
  54.         });  
 // 石重量
        this.stoneWeight = new NumberField();
        this.stoneWeight.setFieldLabel("石重(克拉)");
        this.stoneWeight.setMaxLength(10);
//响应光标离开输入框时的事件
        this.stoneWeight.addListener(Events.OnBlur, new Listener<BaseEvent>() {
            public void handleEvent(BaseEvent be) {
                setFormat(stoneWeight, stoneWeight.getRawValue());
            }
        }); // 单价
        this.unitPrice = new NumberField();
        this.unitPrice.setFieldLabel("<font color='red'>*</font>单价");
        this.unitPrice.setAllowDecimals(true);
        this.unitPrice.setAllowBlank(false);
        this.unitPrice.setMaxLength(10);
        this.unitPrice.setFormat(NumberFormat.getDecimalFormat());
        this.unitPrice.addListener(Events.OnBlur, new Listener<BaseEvent>() {
            public void handleEvent(BaseEvent be) {
                autoSetFormat(unitPrice, unitPrice.getRawValue());
            }
        });

        // 工艺费
        this.craftFee = new NumberField();
        this.craftFee.setFieldLabel("<font color='red'>*</font>工艺费");
        this.craftFee.setAllowDecimals(true);
        this.craftFee.setAllowBlank(false);
        this.craftFee.setMaxLength(10);
        this.craftFee.setFormat(NumberFormat.getDecimalFormat());      
        this.craftFee.addListener(Events.OnBlur, new Listener<BaseEvent>() {
            public void handleEvent(BaseEvent be) {
                autoSetFormat(craftFee, craftFee.getRawValue());
            }
        });

        // 石重量
        this.stoneWeight = new NumberField();
        this.stoneWeight.setFieldLabel("石重(克拉)");
        this.stoneWeight.setMaxLength(10);
        this.stoneWeight.addListener(Events.OnBlur, new Listener<BaseEvent>() {
            public void handleEvent(BaseEvent be) {
                setFormat(stoneWeight, stoneWeight.getRawValue());
            }
        });

        // 总重
        this.totalWeight = new NumberField();
        this.totalWeight.setFieldLabel("总重(克)");
        this.totalWeight.setMaxLength(10);
        this.totalWeight.addListener(Events.OnBlur, new Listener<BaseEvent>() {
            public void handleEvent(BaseEvent be) {
                setFormat(totalWeight, totalWeight.getRawValue());
            }
        });

   响应事件的方法

 

Java代码 复制代码
  1. /**  
  2.  * 自动设置数字的格式  
  3.  * 如输入的为整数则自动加上两位小数  
  4.  * 如输入的带有小数则验证是否为两位小数,不是则报错  
  5.  * @param f为NumberField  
  6.  * @param value输入值  
  7.  */  
  8.     private static void autoSetFormat(NumberField f, String value) {   
  9.         if (!value.equals("")) {   
  10.             if (value.indexOf(".") == -1) {   
  11.                 value += ".00";   
  12.                 f.setRawValue(value);   
  13.                 f.clearInvalid();   
  14.             } else {   
  15.                 f.setRegex("^[\\d]*[\\.][\\d][\\d]$");   
  16.                 f.getMessages().setRegexText("小数点后保留两位");   
  17.             }   
  18.         }   
  19.     }   
  20. /**  
  21.  * 自动设置数字的格式  
  22.  * 如输入的为整数则自动加上三位小数  
  23.  * 如输入的带有小数则验证是否为三位小数,不是则报错  
  24.  * @param f为NumberField  
  25.  * @param value输入值  
  26.  */  
  27.        
  28.     private static void setFormat(NumberField f, String value) {   
  29.         if (!value.equals("")) {   
  30.             if (value.indexOf(".") == -1) {   
  31.                 value += ".000";   
  32.                 f.setRawValue(value);   
  33.                 f.clearInvalid();   
  34.             } else {   
  35.                 f.setRegex("^[\\d]*[\\.][\\d]{3}$");   
  36.                 f.getMessages().setRegexText("小数点后保留三位");   
  37.             }   
  38.         }   
  39.   
  40.     }  
/**
 * 自动设置数字的格式
 * 如输入的为整数则自动加上两位小数
 * 如输入的带有小数则验证是否为两位小数,不是则报错
 * @param f为NumberField
 * @param value输入值
 */
    private static void autoSetFormat(NumberField f, String value) {
        if (!value.equals("")) {
            if (value.indexOf(".") == -1) {
                value += ".00";
                f.setRawValue(value);
                f.clearInvalid();
            } else {
                f.setRegex("^[\\d]*[\\.][\\d][\\d]$");
                f.getMessages().setRegexText("小数点后保留两位");
            }
        }
    }
/**
 * 自动设置数字的格式
 * 如输入的为整数则自动加上三位小数
 * 如输入的带有小数则验证是否为三位小数,不是则报错
 * @param f为NumberField
 * @param value输入值
 */
    
    private static void setFormat(NumberField f, String value) {
        if (!value.equals("")) {
            if (value.indexOf(".") == -1) {
                value += ".000";
                f.setRawValue(value);
                f.clearInvalid();
            } else {
                f.setRegex("^[\\d]*[\\.][\\d]{3}$");
                f.getMessages().setRegexText("小数点后保留三位");
            }
        }

    }

   效果图在附件中


   附

电子邮件

 

              ^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$

汉字(限定只能输入m-n个汉字,m,n值可以修改)

              ^[\u4e00-\u9fa5]{m,n}$

 

 

 

 

 

                                  

 

  • F31cf205-a1f0-30b5-8fb8-cbd5d3747b3e-thumb
  • 大小: 7.4 KB
  • 15d9b98f-3cf5-3934-916b-4a02a2e1a1e5-thumb
  • 大小: 6.1 KB
分享到:
评论

相关推荐

    gwt-ext 实例

    这篇博客文章的标题“gwt-ext 实例”表明,作者分享了一个关于如何在GWT项目中使用gwt-ext库的实际示例。通过这个实例,读者可以学习到如何引入gwt-ext库,创建和配置UI组件,以及如何将这些组件整合到GWT应用中。 ...

    Gwt-ext学习笔记之基础篇

    #### 四、运行GWT-Ext实例 最后一步是修改`Register.java`模型文件,以便能够看到GWT-Ext的实际效果。 1. **修改模型文件** - 在`Register.java`中定义`createComponents()`方法,并在`onModuleLoad()`方法中...

    gwt-ext培训教程

    本教程将逐步引导你了解GWT-Ext的基础知识,并通过实例教你如何创建和配置组件,处理事件,以及实现数据绑定。随着对GWT-Ext的深入理解,你将能开发出功能强大且用户友好的Web应用。 通过阅读提供的“gwt-ext培训...

    gwt-ext相关jar包及资源

    GWT-Ext是一个基于Google Web Toolkit (GWT)的用户界面库,它为开发者提供了丰富的JavaScript组件和功能,使得在GWT应用中构建复杂的、交互式的Web界面变得更加容易。GWT是一个由Google开发的开放源代码框架,允许...

    Gwt-Ext基础-中级-进阶

    Gwt-Ext是一种基于Google Web Toolkit (GWT)的JavaScript库,它扩展了GWT的功能,提供了丰富的用户界面组件和更美观的外观。这个压缩包包含的资源是关于Gwt-Ext的基础、中级和进阶学习资料,适合想要深入理解和应用...

    非常好的gwt-ext培训教程

    【GWT-Ext 知识点详解】 GWT-Ext 是一个高级的网页开发控件库,它结合了 Google Web Toolkit (GWT) 和 ExtJs 的优势,为开发者提供了丰富的 UI 组件和强大的功能。GWT 是一个由 Google 开发的用于构建富互联网应用...

    Gwt-Ext学习笔记之进级篇

    在深入探讨GWT-Ext之前,我们先了解一下GWT(Google Web Toolkit)和Ext Js的基础。GWT是一个开源的开发工具,允许开发者使用Java语言来编写客户端的Web应用程序,然后将其编译为优化过的JavaScript代码,以实现高...

    gwt-ext-tree

    GWT-Ext-Tree 是一个基于 Google Web Toolkit (GWT) 的组件库,它扩展了 GWT 的功能,提供了一套强大的、可定制的树形控件。GWT 是一个用于构建富互联网应用程序(RIA)的 Java 开发框架,允许开发者使用 Java 语言...

    GWT-Ext_体验之旅.doc

    【GWT-Ext 知识点详解】 GWT-Ext 是一个基于 Google Web Toolkit (GWT) 和 ExtJS 的开源控件库,专为构建富互联网应用程序(RIA)提供强大的功能。它允许开发者使用纯 Java 语言进行界面开发,极大地提高了开发效率。...

    GWT-EXT2.0最佳实践教程,源代码打包供下载

    《GWT-EXT2.0最佳实践教程》源代码打包下载资源主要涵盖了Google Web Toolkit (GWT) 和EXT-JS 2.0的结合使用,提供了丰富的实践案例和示例代码,旨在帮助开发者深入理解和应用这两项技术。GWT是一款强大的JavaScript...

    Gwt-ext学习笔记

    GWT(Google Web Toolkit)和Ext JS是两个在Web开发领域广泛应用的技术,它们结合形成的Gwt-ext库,为开发者提供了一种构建富客户端应用程序的强大工具。这篇学习笔记将深入探讨Gwt-ext的核心概念、功能以及如何在实际...

    (转载)GWT -EXT学习笔记-基础

    #### 五、运行GWT-EXT实例 **步骤一:修改Register.java模型文件** 1. 在`Register.java`文件中,修改`onModuleLoad()`方法,实现UI组件的创建和显示: ```java public class Register implements EntryPoint { ...

    GWT-Ext超级Widget功能类库

    GWT-Ext超级Widget功能类库是一个基于Google Web Toolkit (GWT)的扩展库,它为开发者提供了丰富的用户界面组件和强大的功能,旨在提升Web应用的用户体验和开发效率。GWT是一个开源框架,允许Java开发者使用Java语言...

    Gwt-Ext学习笔记之基础篇- www.hxiaseo.cn技术网站

    标题中的"Gwt-Ext学习笔记之基础篇"指的是关于Gwt-Ext的初级教程,这是一种基于Google Web Toolkit (GWT) 的扩展库,用于构建富互联网应用程序(RIA)。Gwt-Ext提供了丰富的用户界面组件,使得开发者可以利用Java语言...

    GWT-Ext 控件演示

    GWT-Ext 控件演示 GWT-Ext 控件演示

Global site tag (gtag.js) - Google Analytics