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

Javascript 将LiveCycle十进制字段与模式匹配,javascript,livecycle-designer,Javascript,Livecycle Designer,我们在LiveCycle Designer设计的PDF表单中有一个十进制字段,用于捕获纬度值。我想确保用户只输入三位小数。我不希望PDF为它们创建十进制数字。用户必须输入它们 我尝试使用this.rawValue.match(myRegEx)方法捕获任何输入不正确的值,如字段的退出事件中所示,但JavaScript抛出以下错误: TypeError: this.rawValue.match is not a function 17:XFA:form1[0]:Page7[0]:Facility_C

我们在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
这是我使用的代码。这是令人困惑的,因为我在另一个领域使用了这种精确的方法。尽管另一个字段是文本字段,而这个字段是十进制字段。也许“匹配”方法不适用于十进制字段?有没有办法将十进制值转换成字符串,我可以使用“match”方法将其转换成字符串?或者其他关于如何做到这一点的想法

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的建议,我发现十进制字段实际上不是字符串。我在验证代码中尝试转换为字符串,如下所示:

字符串(this.rawValue).match(myRegex2)


这在一定程度上起了作用,但如果用户输入“000”作为三个十进制数字,它就失败了,我认为这是因为十进制字段会在传递要检查的值之前截断那些尾随的零。因此,我认为答案是,除非我将字段从十进制转换为文本,否则没有办法。

听起来好像它不是字符串。尝试
console.log(typeof this.rawValue
)`进行调试