手机号码
13311221133,一个正确的手机号码应该是什么样?
(1)必须是11位:如何计算字符串的长度
(2)第1位必须是1:如何取得第1位
(3)第2位只能在3-9:同上,并且如何与3-9的范围作比较
(4)所有位(后9位)必须是数字:0-9,对每一位进行判断
(5)不同号段的第3位是有要求的,此处不专门考虑
<?php
// 13812345678,一个正确的手机号码应该是什么样?
// (1)必须是11位:如何计算字符串的长度
// (2)第1位必须是1:如何取得第1位
// (3)第2位只能在3-9:同上,并且如何与3-9的范围作比较
// (4)所有位(后9位)必须是数字:0-9,对每一位进行判断
$phone = "13812345678";
$len = strlen($phone);
if ($len != 11) {
echo "长度必须为11位.<br/>";
}
if ($phone[0] != 1) {
echo "第1位必须为1.<br/>";
}
// if (!($phone[1] >= 3 && $phone[1] <= 9)) {
if ($phone[1] < "3" || $phone[1] > "9") {
echo "第2位必须为3-9.<br/>";
}
// 可以使用ASCII码进行数字比较,非常严谨
// if (ord($phone[1]) < 51 || ord($phone[1]) > 57) {
// echo "第2位必须为3-9.<br/>";
// }
// 或者使用(int)强制转换数据类型, (int)$phone[1],再与数字进行比较
$isNumber = true;
for ($i=2; $i<11; $i++) {
if ( ! ($phone[$i] >= "0" && $phone[$i] <= "9")) {
$isNumber = false;
break;
}
}
if (!$isNumber) {
echo "后9位必须是数字.<br/>";
}
?>
ASCII码表: