0

我需要驗證範圍R1 C2符號C2範圍驗證R1:C1至R2:C1-R2:在谷歌片

我試過,

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

UPDATE:

如何查看在客戶端數字驗證後,由給定的範圍是在服務器端正確。因爲,在服務器端的範圍可能是無效的。

回答

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正則表達式演示。

檢查值是否真的好,它比正則表達式更多。你必須用破折號和冒號分開代碼並比較值。