我正在尝试实现以下功能。这里使用某种类型的正则表达式最好吗?我也需要捕获这个数字。
function startsWithNumber($string) {
$startsWithNumber = false;
// Logic
return $startsWithNumber;
}
答案 0 :(得分:17)
您可以使用substr
和ctype_digit
:
function startsWithNumber($string) {
return strlen($string) > 0 && ctype_digit(substr($string, 0, 1));
}
只需要额外的strlen
,因为ctype_digit
会在PHP 5.1之前为空字符串返回 true 。
或者,如果您更想使用正则表达式:
function startsWithNumber($str) {
return preg_match('/^\d/', $str) === 1;
}
答案 1 :(得分:5)
这样的事可能对你有用:
function str2int($string) {
$length = strlen($string);
for ($i = 0, $int = ''; $i < $length; $i++) {
if (is_numeric($string[$i]))
$int .= $string[$i];
else break;
}
return (int) $int;
}