-2
A
回答
2
你可以通過使用正則表達式,像這樣:
function checkNumber($number) {
return !!preg_match('/^09\d{8}$/', "$number");
}
或用簡單的字符串匹配:
function checkNumber($number) {
$number = trim("$number");
if (strlen($number) != 10)
return false;
if (substr($number, 0, 2) != "09")
return false;
return trim($number, "0..9") == "";
}
兩種方法都給出相同的輸出:
var_dump([$number = '0912345678', checkNumber($number)]);
var_dump([$number = '9', checkNumber($number)]);
var_dump([$number = '091234567', checkNumber($number)]);
var_dump([$number = '09123456788', checkNumber($number)]);
// array(2) {
// [0]=>
// string(10) "0912345678"
// [1]=>
// bool(true)
// }
// array(2) {
// [0]=>
// string(10) "9"
// [1]=>
// bool(false)
// }
// array(2) {
// [0]=>
// string(9) "091234567"
// [1]=>
// bool(false)
// }
// array(2) {
// [0]=>
// string(11) "09123456788"
// [1]=>
// bool(false)
// }
此外,正則表達式的方法更簡單和靈活,恕我直言。
相關問題
- 1. 數組長度計數不匹配
- 2. 兩個Python列表的匹配長度
- 3. Ruby - 從長度遞增的整數中分離出前兩位數字
- 4. 按位置和值在兩個數組之間匹配php
- 5. 熊貓數據幀長度不匹配
- 6. JavaScript的前兩位數字的整數?
- 7. 爲什麼`^ [^ [:digit:]]`匹配數字前的數字和換行符
- 8. 數組長度與索引長度不匹配
- 9. 匹配位數
- 10. 匹配恆定長度的字符串?
- 11. 正則表達式匹配數字的精確長度
- 12. 匹配所有連續數字的長度n
- 13. 匹配'1長度非數字'的正則表達式
- 14. PHP XOR函數實現「長度不匹配」
- 15. Javascript正則表達式匹配alpha長度後跟數字長度
- 16. 匹配長度與相同長度的字符串列表
- 17. 限制匹配的長度
- 18. 正則表達式MySQL - 匹配前兩個字母,x數字
- 19. 匹配數字和字母/數字
- 20. php glob模式匹配仲裁數字位數
- 21. 正則表達式,在「\」和「\」之間匹配長度爲4或5位數字的字符串
- 22. 字符串數據長度不匹配delphi + sql server 2008
- 23. 正則表達式在精度前匹配n位,精度後只有兩位數
- 24. 正則表達式來匹配和替換可變長度的數字
- 25. 數組和字符串的長度在來回轉換時不匹配
- 26. 兩套之間的匹配數字
- 27. 匹配兩行中的字符數
- 28. excel匹配經緯度和長點
- 29. 匹配的前兩個單詞的前兩個字母
- 30. 最長前綴匹配
請添加一些關於您的代碼如何解決問題的信息。 – Koopakiller
非常感謝。很有幫助。我也試過下面的代碼,它也工作。 preg_match(「/ ^([09] {2})([0-9] {9})$ /」,$ cellNum) –
@RaminRabii,但是你的代碼給出了11位數的「true」以'09'**和**'90'開頭,因爲'[09] {2}'意思是「0和9的兩位數字,以任何順序」 – ankhzet