如何判断第一个字符是数字还是字母?

时间:2018-04-16 14:30:56

标签: php

让我说我有:

_Example
_1979

我们如何知道_之后的字符是number还是letter?我不熟悉regex

我正在做的只是找到以_开头的字符串然后删除_,因为我只是出于其他原因使用它:

if (strpos($txt, '_') !== false) {
   $output = str_replace('_', ' ', $txt);
   echo $output;
  ...Now I should find if the first `character` is a `letter` or a `number`

3 个答案:

答案 0 :(得分:6)

如果您不想要正则表达式,那么PHP实际上允许您直接从字符串访问字节:

$string = '_1987';

// Since string indexing is zero-based, we want to check if
// the first char is an underscore and
// the second character is a digit
if( $string[0] === '_' && ctype_digit( $string[1] ) )
{
    echo 'underscore followed by digit!';

    // chop off the leading underscore
    $string = substr( $string, 1 );
}
else
{
    echo 'not underscore followed by digit!';
}

Documentation

答案 1 :(得分:0)

为此你可以避免regexp ..你可以简单地使用is_numeric()

is_numeric(substr($txt, 1));

http://php.net/manual/en/function.is-numeric.php

答案 2 :(得分:0)

您可以执行类似

的操作
if (is_numeric($txt[1])) ...

您可以根据需要使用方括号或使用substr来访问字符串的第一个字母。

if (is_numeric(substr($txt, 1))) ...

这将返回true或false

供参考

  

http://php.net/manual/en/function.is-numeric.php
  http://php.net/manual/en/function.substr.php