【问题标题】:Vaadin: How to make a validator accept numbers and one decimal onlyVaadin:如何让验证器只接受数字和一位小数
【发布时间】:2016-03-07 08:47:46
【问题描述】:

我正在尝试验证一个文本字段是否只有数字和一位小数,但小数一直导致验证器关闭:

TextField tf = new TextField();
tf.addValidator(new RegexpValidator("^\\d+$", facilityId.getCaption() + "Only numbers and one decimal allowed.")); 

所以我得到了数字,但是我如何告诉验证器“。”没关系?

注意:附加组件不是一个选项。

【问题讨论】:

    标签: java regex validation vaadin


    【解决方案1】:

    这个正则表达式应该可以工作

    /^\d+\.\d$|^\d+$/
    

    故障

    ^ - 行首

    \d+ - 一位或多位数字

    \. - 转义句点,否则它将匹配任何字符

    \d$ - 以小数点后一位结尾

    | - 或者

    ^\d+$ - 它有任意位数,没有小数点

    【讨论】:

    • 我不知道 vaadmin,但是“?”将是一个更好的解决方案,我相信它也应该知道这一点。 ^\d+(\.\d)?$
    • “无效的转义序列”
    • tf.addValidator(new RegexpValidator("/^\d+\.\d$|^\d+$/", facilityId.getCaption() + " 包含无效字符。"));给我编译错误“无效的转义序列”。
    • 我不知道 vaadmin,但我知道这是有效的正则表达式,因为我在 rubular.com 上尝试过。
    • "有效的是 \b \t \n \f \r \'' \' \\"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 2016-02-03
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多