Google sheets 谷歌电子表格文本长度验证

Google sheets 谷歌电子表格文本长度验证,google-sheets,google-docs,Google Sheets,Google Docs,我正在谷歌电子表格上工作。我正在尝试对文本长度制定验证规则。 例如,文本长度必须等于12个字符,其中包括数字、破折号和一个大写字符。 例子: 123-56C89112 我尝试在谷歌群组中搜索,但没有结果!你能在这方面提供帮助吗?你可以使用数据>验证>自定义公式 =REGEXMATCH(B3, "^(?=.{12}$)(?=(^[^A-Z]*[A-Z]{1}[^A-Z]*$))(?=(^[^-]*[-]{1}[^-]*$)).*") 我不是正则表达式方面的专家,所以这可能有点过头了,但它似乎是有

我正在谷歌电子表格上工作。我正在尝试对文本长度制定验证规则。 例如,文本长度必须等于12个字符,其中包括数字、破折号和一个大写字符。 例子: 123-56C89112


我尝试在谷歌群组中搜索,但没有结果!你能在这方面提供帮助吗?

你可以使用数据>验证>自定义公式

=REGEXMATCH(B3, "^(?=.{12}$)(?=(^[^A-Z]*[A-Z]{1}[^A-Z]*$))(?=(^[^-]*[-]{1}[^-]*$)).*")
我不是正则表达式方面的专家,所以这可能有点过头了,但它似乎是有效的:

^(?=.{12}$)(?=(^[^A-Z]*[A-Z]{1}[^A-Z]*$))(?=(^[^-]*[-]{1}[^-]*$)).*

这允许任何正好包含12个字符、1个大写字母和1个破折号的字符串

编辑:在电子表格中(Lookahead)正则表达式似乎不起作用(请参见注释)

EDIT2:使用如下自定义函数似乎可行,但前提是出于某种原因(bug?)使用警告(而不是拒绝)


这将要求前三个值是数字——据我所知,这不是一个给定值。显然,电子表格不允许使用lookahead regex’。我将在AppScript上尝试使用自定义函数,但我不知道如何使用常用函数解决此问题
function test(myString) { 
return myString.match("^(?=.{12}$)(?=(^[^A-Z]*[A-Z]{1}[^A-Z]*$))(?=(^[^-]*[-]{1}[^-]*$)).*")!=null;
 }