Livecycle RegExp - 带小数的麻烦

时间:2015-01-28 15:00:53

标签: javascript regex livecycle

在Livecycle中,我验证输入的数字是0到10,并且允许四分之一小时。在post的帮助下,我写了以下内容。

if (!xfa.event.newText.match(/^(([10]))$|^((([0-9]))$|^((([0-9]))\.?((25)|(50)|(5)|(75)|(0)|(00))))$/))
    {
        xfa.event.change = "";
    };

问题是时间不被接受。我试过在括号中包装\.,但这也不起作用。该字段是一个文本字段,没有特殊格式和更改事件中的代码。

1 个答案:

答案 0 :(得分:1)

Yikes,这是一个令人费解的正则表达式。这可以简化很多:

/^(?:10|[0-9](?:\.(?:[27]?5)?0*)?)$/

<强>解释

^             # Start of string
(?:           # Start of group:
 10           # Either match 10
|             # or
 [0-9]        # Match 0-9
 (?:          # optionally followed by this group:
  \.          # a dot
  (?:[27]?5)? # either 25, 75 or 5 (also optional)
  0*          # followed by optional zeroes
 )?           # As said before, make the group optional
)             # End of outer group
$             # End of string

测试live on regex101.com