将 LiveCycle 十进制字段与模式匹配

Match a LiveCycle decimal field to a pattern

我们在 LiveCycle Designer 设计的 PDF 表单中有一个小数字段,旨在捕获纬度值。我想确保用户输入 正好 三位小数。而且我不希望 PDF 为它们创建十进制数字。用户必须输入它们。

我尝试在字段的退出事件中使用如下所示的 this.rawValue.match(myRegEx) 方法捕获任何不正确输入的值,但是 JavaScript 引发了以下错误:

TypeError: this.rawValue.match is not a function
17:XFA:form1[0]:Page7[0]:Facility_Coord_Latitude[0]:exit

这是我使用的代码。这很令人困惑,因为我在不同的领域使用了这种确切的方法。尽管另一个字段是文本字段而这个字段是小数字段。也许“匹配”方法不适用于小数字段?有什么方法可以将十进制值转换为可以使用“匹配”方法的字符串?或者关于如何执行此操作的任何其他想法?

if (this.rawValue != null){ // only if the field has a value...

    if (
    !this.rawValue.match(myRegex1) && 
    !this.rawValue.match(myRegex2)){ // it doesnt match any of the patterns
    
        xfa.host.messageBox('Please enter your value to exactly three decimal places.');
        xfa.host.setFocus(this.name);
        
    }
    
}

在@CertainPerformance 的指点下,我发现 decimal 字段确实不是字符串。我尝试在验证代码中按如下方式转换为字符串:

字符串(this.rawValue).匹配(myRegex2)

部分有效,但如果用户输入“000”作为小数点后三位,则失败,我认为是因为小数字段会在传递要检查的值之前截断那些尾随零。所以,我认为答案是没有办法,除非我将字段从十进制转换为文本。