0

我整天都在阅读 php 代码,但我似乎无法找到我认为是一个简单问题的答案。

我有一个充满字符串的数组,我想看看字符串中的第一个字符是否是数字,然后用它做一些事情,例如:

if substr($stringArray[$i],0,1) == regexsomething[0-9]) { do stuff }

我把这一切都搞错了吗?

当然,我可以将正则表达式设置为 [^0-9] 以在开始时进行匹配,但 PHP preg_match 让我非常困惑。

任何建议都会很棒。

谢谢

4

2 回答 2

4

括号外,^表示“开始”,但紧跟在 a 之后[,表示“反转整个班级”。/[^0-9]/将匹配包含非数字的任何内容。匹配单个数字的正则表达式将是:

/^[0-9]$/

不过,PHP 已经为此提供了一个函数:is_numeric()

if ( is_numeric( substr( $stringArray[$i],0,1 ) ) ) { do stuff }

如果您想走正则表达式路线,则不需要获取第一个字符。匹配以数字开头的任何内容的正则表达式将是:

if ( preg_match( '/^[0-9]/', $stringArray[$i] ) ) { do stuff }
于 2011-02-14T13:23:35.637 回答
0

如果你想确保一个字符串是一个数字,你可以is_numeric像这样使用:

if(is_numeric($string))
{
    //Do Something
}

如果你想确保它是一个数字,7你可以使用<小于运算符

if(is_numeric($string) && $string < 10)
{
    //Do Something
}
于 2011-02-14T13:55:16.990 回答