兩種方法:1、用is_numeric()偵測一個字串是否為數字字串,語法“is_numeric (字串)”,如果傳回TRUE則只含數字。 2.用preg_replace()配合正規表示式過濾字符,傳回數字字符,組成數字字串,用「===」比較數字字串和原字串是否相等,相等則只含數字,語法「preg_replace( "/[^0-9]/","",字串)===字串」。
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
php偵測字串是否只包含數字的兩種方法:
方法1:使用is_numeric()函數偵測
字串只含數字,則該字串為數字字串。
而is_numeric()函數可以偵測一個字串是否為數字字串。
is_numeric ($var)
$var
:要偵測的變數。
如果指定的變數$var
是數字和數字字串則傳回TRUE,否則傳回FALSE
<?php header("Content-type:text/html;charset=utf-8"); $str1="a678"; $str2="678"; $str3="3.14"; if (is_numeric($str1)){ echo "$var_name1 是数字字符串<br><br>"; } else{ echo "$str1 不是数字字符串<br><br>" ; } if (is_numeric($str2)){ echo "$str2 是数字字符串<br><br>"; } else{ echo "$str2 不是数字字符串<br><br>"; } ?>
方法2:使用preg_replace()函數和「===」運算子偵測
使用preg_replace()函數來配合正規表示式可以過濾字符,傳回數字字符,組成數字字串
使用「===」運算子比較數字字串和原始字串是否相等,相等則字串只含數字
<?php header("Content-type:text/html;charset=utf-8"); function f($str){ $result = preg_replace("/[^0-9]/", "", $str); if($result===$str){ echo "$str 字符串中只含数字<br><br>"; } else{ echo "$str 字符串中还有其他字符<br><br>" ; } } f("a678"); f("678"); ?>
preg_replace("/[^0-9]/", "", $str)
的意思為符合除了0~9
間的數字以外的字符,並將這些字符替換為空字符,即刪除這些字符即可。那就只剩下數字字元了。
說明:preg_replace 函數執行一個正規表示式的搜尋和替換,是一個強大的字串替換處理函數,該它的語法格式為
preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
搜尋subject 中符合pattern 的部分, 以replacement 替換。
參數說明:
$pattern: 要搜尋的模式,可以是字串或字串陣列。
$replacement: 用於替換的字串或字串陣列。
$subject: 要搜尋已取代的目標字串或字串陣列。
$limit: 可選,對於每個模式用於每個 subject 字串的最大可替換次數。預設是-1(無限制)。
$count: 可選,為替換執行的次數。
推薦學習:《PHP影片教學》
以上是php怎麼檢測字串是否只含數字的詳細內容。更多資訊請關注PHP中文網其他相關文章!