我試圖檢查用戶名字符串是否都是數字(但該字段不是數字字段)。如果是這樣,我需要通過添加前導0來使字符串長度爲5個字符。PHP檢查字符串是否包含數字和檢查字符串長度
我有這樣的代碼:
<?php
$getuname = $_GET['un'];
if (mb_strlen($getuname) <= 1){
$getuname = "0".$getuname;
}
if (mb_strlen($getuname) <= 2){
$getuname = "0".$getuname;
}
if (mb_strlen($getuname) <= 3){
$getuname = "0".$getuname;
}
if (mb_strlen($getuname) <= 4){
$getuname = "0".$getuname;
}
echo $getuname;
?>
上面的代碼適用於確保該字符串是5個字符加零,但它是不是很漂亮,我敢肯定有一個更漂亮的方式做它。任何人?
此外,整個片段需要包裝在一個IF語句中,該語句將檢查它是否包含首字母而不包含數字。我嘗試使用!is_numeric,但這似乎不起作用。我假設,因爲它不是一個數字類型的字段。
使用'preg_match'來檢查用戶名是否只包含數字http://es1.php.net/preg_match – Reger
tas9是完全正確的,preg_match是檢查的最佳解決方案。在這種情況下is_int和is_numeric不可靠。 – Flixer
供參考:對於100萬次以上的代表進行速度測試,'ctype_digit'花了0.114777s,正則表達式解決方案花了0.783449s –