在Google工作表中验证R1:C1到R2:C2表示法

时间:2017-04-24 05:07:39

标签: javascript regex google-apps-script google-spreadsheet-api

我需要验证范围R1:C1-R2:C2范围

我试过了,

function isValid(rc) {
    if (rc)
        if (rc.trim() === "") return false;
    var isPattern = /^[0-9]+:[0-9]+-[0-9]+:[0-9]+$/.test(rc);
    if (!isPattern) return false;
    return ((rc));    
}

但上面的代码也需要9:9-0:0或0:0-0:0

更新:

如何在服务器端检查客户端数字验证后的给定范围是否正确。因为,在服务器端范围可能无效。

1 个答案:

答案 0 :(得分:0)

您需要检查是否有一些字母字符,然后是数字字符 - 这是匹配字段的方式:[a-z]+\d+。它会匹配一些字符,然后是一些数字。例如。 a1ASD34。它不会与12sab匹配。

如果你把所有这些放在一起,你会得到这个正则表达式:

/^[a-z]+\d+:[a-z]+\d+\s*-\s*[a-z]+\d+:[a-z]+[0-9]+$/i

说明:

  • /../i不区分大小写,因此足以指定[a-z],无需键入[a-zA-Z]
  • 匹配字段[a-z]+\d+,如R1B12。它不匹配12AB
  • \s*-\s*容忍短划线周围的空格
  • 所以我们得到了field:field-field:field,这就是你想要的。

您可以使用this正则表达式演示。

检查值是否实际正常,它需要的不仅仅是正则表达式。您必须按破折号和冒号分割代码并比较值。