gpt4 book ai didi

javascript - Livecycle RegEx 字符长度错误

转载 作者:行者123 更新时间:2023-11-28 00:44:01 25 4
gpt4 key购买 nike

我正在尝试让正则表达式在 Livecycle 中工作。我将文本字段的更改事件下的代码和语言设置为 JavaScript。代码是:

if (xfa.event.newText.match(/^[0-9]{5}$/))      
{
xfa.event.change = "";
}

问题是文本字段接受任意数量的字母数字字符或仅 4 个数字字符。

这只是正则表达式的第一部分,完整的部分将是(EC+3 位数字,C+4 位数字,5 位数字)/[e][c][0-9]{3}| [c][0-9]{4}|[0-9]{5}/i 但我想先测试一下功能。

最佳答案

您的正则表达式基本上表示“如果您进行更改后的新文本等于#####(其中#是某个数字),则不允许进行该更改。”这意味着它将允许任何其他更改,包括字母等。

所以这与您想要看到的几乎相反。

每次用户输入另一个字符时都会触发更改事件,因此如果您希望它起作用,它必须接受字符的每一步。示例 - E 可以,EC 可以,EC1 可以,但 ECC 不行。

编辑 - 起初我建议您在退出/验证事件中而不是在更改时检查这一点,但我想了更多,并且在更改时格式化的正则表达式模式实际上并没有那么糟糕。如果您将此代码放入更改事件中,它应该会阻止用户输入任何不符合这 3 种格式之一的内容。

EC###、C###、#####

if (!xfa.event.newText.match(/^(e|ec|ec\d{1,3}|c|c\d{1,4}|\d{1,5})$/i))
{
xfa.event.change = "";
}

(该模式不区分大小写,如果您希望区分大小写,请删除末尾的 i。)

关于javascript - Livecycle RegEx 字符长度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27610179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com