我使用regex作为验证,检查输入的年份(整数字段)正好是4位数。表达式regex(.,'0-9{4}')在Commcare中不起作用,但当我在http://www.regexr.com/上检查时,0-9{4}确实起作用。我的Commcare功能中遗漏了什么?
发布于 2017-03-10 15:49:53
该正则表达式应该可以工作,但它只适用于存储字符串值的问题类型。
因为问题类型存储整数,所以regex将无法工作。但是要验证整数问题的4位值,还可以使用以下表达式:
。>= 1000和。<= 9999
此外,还可以在正则表达式中用\d代替0-9。因此,如果您有一个字符串问题要验证确切的4个数字,您可以使用: regex(.,'^\d{4}$')
发布于 2017-03-10 14:30:51
也许CommCare不支持{n}表示法?(并非所有regex实现都是相同的)。您可以尝试使用[0-9][0-9][0-9][0-9]作为替代方案。
https://webapps.stackexchange.com/questions/104026
复制相似问题