我怎么能在php中说变量只能是数字或文本?

时间:2014-05-17 17:07:25

标签: php

我在PHP中有一个变量,如下所示:

        $currentMakeText = $advert->getMakeText();
        if ($currentMakeText == '' || $currentMakeText === null || $currentMakeText == '0') {

if语句中,我想检查它是否只是文本,是否只是数字。

3 个答案:

答案 0 :(得分:1)

检查两者:

if(ctype_alnum($currentMakeText)) { }

或者检查:

if(ctype_alpha($currentMakeText)) {
    //letters
} elseif(ctype_digit($currentMakeText)) {
    //digit
}

答案 1 :(得分:0)

你可以尝试这个:

if(is_string($currentMakeText) || is_numeric($currentMakeText))

答案 2 :(得分:0)

只需使用preg_match正则表达式为[a-zA-Z0-9 ],如下所示:

$currentMakeText = $advert->getMakeText();

if (preg_match('/[a-zA-Z0-9 ]/', $currentMakeText)) {
  // Your code here.
}

注意我在a-zA-Z0-9之后添加了一个空格,因此它可以检测具有空格的单词组合的句子。但是你可以删除那个空格来纯粹检查像[a-zA-Z0-9]这样的字母数字字符。

您可以使用i上的preg_match选项进行更简化,以防止不区分大小写:

$currentMakeText = $advert->getMakeText();

if (preg_match('/[a-z0-9 ]/i', $currentMakeText)) {
  // Your code here.
}