2014-02-07 51 views
-1

我需要檢查一個字符串無法驗證號碼在我的字符串

  • 僅包含數字和
  • 第一個數字爲0,
  • 整個字符串至少有8位數字,最大25

我已經試過這一點,但它不工作:

if (!preg_match('/^[0][0-9]\d{8-25}$/', $ut_tel)) 
+0

數字應該是連續的還是可以有空格,破折號等? –

+0

沒有空格或其他stuaff,只是數字 – user3214817

+0

刪除[0]沒有幫助 – user3214817

回答

5

試試這個正則表達式:

/^0\d{7,24}$/ 

它似乎工作here

+1

菲利波是正確的,這是要走的路 – CodeFanatic

1

使用此正則表達式

^(0[0-9]{7,24})$ 

Demo

+3

要小心現在最小9個數字和最大26 – CodeFanatic

+0

謝謝!這工作:)! – user3214817

+0

它現在罰款,生病去除downvote – CodeFanatic

1

如果我是你,我會分別做每張支票。這樣,您將來不會遇到任何問題,如果您決定刪除其中一個或添加其他檢查。

說明所有潛在downvoters:我知道問一個正則表達式的方式的問題,而是因爲這是已經在其他的答案提供的 - 我認爲這是好事,有不同的方法作爲回答爲好。)

function validateNumber($number){ 
    if(!is_numeric($number)) 
     return false; 
    if(strlen($number)>25 || strlen($number)<8) 
     return false; 
    if(substr($number, 0, 1) != 0) 
     return false; 

    return true; 
} 

var_dump(validateNumber('0234567')); // shorter than 8 
var_dump(validateNumber('02345678')); // valid 
var_dump(validateNumber('12345678')); // doesn't start with 0 
var_dump(validateNumber('023456789')); // longer than 25