[英]PHP preg_match for validating 10 digit mobile number
我正在嘗試使用 PHP 函數 preg_match 驗證 10 位手機號碼。 下面的代碼不會產生任何輸出。
是正則表達式錯誤嗎? 或者我使用不當。
我期待輸出中的Hi True
。 如果匹配或Hi False
如果不匹配。
<?php
$value = '9987199871';
$mobileregex = "/^[1-9][0-9]{10}$/" ;
echo "Hi " . preg_match($mobileregex, $value) === 1; // @debug
?>
您所說的正則表達式將匹配十一個數字,而不是十個數字。 由於所有印度手機號碼都以 9、8、7 或 6 開頭,因此我們可以使用以下正則表達式:
^[6-9][0-9]{9}$
這是您更新的代碼片段:
$value = '9987199871';
$mobileregex = "/^[6-9][0-9]{9}$/" ;
echo "Hi " . preg_match($mobileregex, $value) === 1;
請注意,就驗證而言,上述正則表達式可能仍遠非我們所能做到的最好,但至少是一個開始。
以下代碼片段將檢查手機號碼數字是否在 10-15 位以內,包括開頭的“+”和后跟非零的第一位數字。
正則表達式
"/^[+]?[1-9][0-9]{9,14}$/"
代碼片段
// Validation for the mobile field.
function validateMobileNumber($mobile) {
if (!empty($mobile)) {
$isMobileNmberValid = TRUE;
$mobileDigitsLength = strlen($mobile);
if ($mobileDigitsLength < 10 || $mobileDigitsLength > 15) {
$isMobileNmberValid = FALSE;
} else {
if (!preg_match("/^[+]?[1-9][0-9]{9,14}$/", $mobile)) {
$isMobileNmberValid = FALSE;
}
}
return $isMobileNmberValid;
} else {
return false;
}
}
^正則表達式的符號表示開始
[+]? 確保在開始時允許使用單個(或零)+ 符號
[1-9]確保第一位數字是非零數字
[0-9]{9,14}將確保有 9 到 14 位數字
$表示結束
$mob = "9513574562";
if(preg_match("/^\d+\.?\d*$/",$mob) && strlen($mob)==10){
echo 1;
}else{
echo 0;
}
preg_match() 檢查它是否是整數,在 strlen() 中它檢查這個字符串中沒有數字。 如果滿足 2 個條件,則為 10 位有效手機號碼
對於巴基斯坦手機號碼,正則表達式代碼如下
^[9][2][3][0-9]{9}$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.