0

我正在使用 Java 和 ZK。尝试使用正则表达式作为文本框的约束。

这是正则表达式:^[0-9]{1,9}(?:\\.[0-9]{1,3})?$. 它在 Java 中运行良好,但在 zul 中使用时textbox,出现错误:Unknown constraint: ^[0-9]{1 请查看随附的屏幕截图:

在此处输入图像描述

正则表达式的有效值-

121245.121(3 digits after decimal is valid)
2145.11
0.23
5748579

无效值 -

.111
45445.454545(3 digits after decimal is valid)
-1545.2
22..

zul中的代码如下-

<textbox xmlns:w="client" id="bal" maxlength="12" tooltiptext="Balance" constraint="^[0-9]{1,9}(?:\\.[0-9]{1,3})?$">

ZK Fiddler 可以在以下位置找到:http: //zkfiddle.org/sample/2c9e93q/2-Textbox-regex-issue

谁能帮我解决这个问题?

4

2 回答 2

1

我没有修复正则表达式(似乎它不起作用),但是要在约束中使用正则表达式,您必须将其括在/

<textbox xmlns:w="client" id="bal" maxlength="12" tooltiptext="Balance" 
         constraint="/^[0-9]{1,9}(?:\\.[0-9]{1,3})?$/"/>

演示:http: //zkfiddle.org/sample/2bcm8bj/2-Textbox-regex-issue


文档

要指定正则表达式,您可能必须使用字符 / 将正则表达式括起来,如下所示。 <textbox constraint="/.+@.+\.[a-z]+/"/>

于 2016-03-23T06:51:32.417 回答
1

作为@RC。在上面的答案中提到,属性值中需要正则表达式分隔符/<pattern>/pattern来定义正则表达式。但是,您的正则表达式将允许像这样的值,67\k78因为\\定义了文字反斜杠,而点代表除换行符以外的任何字符。

正确的正则表达式是

<textbox constraint="/^[0-9]{1,9}(?:[.][0-9]{1,3})?$/" xmlns:w="client" id="bal" maxlength="12" tooltiptext="Balance">
                     ^              ^^^             ^

请注意,将点放入字符类时不需要转义[.]

请参阅更新的小提琴

在此处输入图像描述

于 2016-03-23T08:16:49.317 回答