2012-10-24 33 views
5

mã của tôi là:

<?php 
    $phone = 18311111111; 
    if(ereg("^\d{11}$",$phone)){ 
     echo "true"; 
    } else { 
     echo "false"; 
    } 
?> 

tôi hiểu sai? tại sao?

+4

Cảnh báo: 'ereg' đã bị hủy kể từ PHP 5.3.0. Dựa vào tính năng này là rất nản lòng. – OmnipotentEntity

Trả lời

4

ereg không hỗ trợ \d, bạn cần sử dụng [0-9] thay thế.

eregphản, sử dụng preg_match thay vào đó, sau đó bạn có thể sử dụng \d.

if(preg_match("/^\d{11}$/",$phone)){ 
    echo "true"; 
} else { 
    echo "false"; 
} 
+0

Woops, typo: derepcated => deprecated –

+0

@AlexLunix Cảm ơn, đã sửa :) – xdazz

0

Đối với những gì nó có giá trị, bạn không nên sử dụng ereg (phản đối) cũng không preg_match cho một thử nghiệm đơn giản như vậy; bạn có thể sử dụng ctype_digit():

if (ctype_digit($phone)) { 
    // $phone consists of only digits 
} else { 
    // non-digit characters were found in $phone 
} 
Các vấn đề liên quan