Check if variable has a number php

后端 未结 5 1608
感动是毒
感动是毒 2021-01-30 15:09

I want to check if a variable has a number in it, I just want to see if there is one I don\'t care if it has any thing else in it like so:

\"abc\" - false
\"!./#         


        
相关标签:
5条回答
  • 2021-01-30 15:19

    This should help you:

    $numberOfNumbersFound = preg_match("/[0-9]+/", $yourString);
    

    You could get more out of the preg_match function, so have a look at its manual

    0 讨论(0)
  • 2021-01-30 15:20

    You can use the strcspn function:

    if (strcspn($_REQUEST['q'], '0123456789') != strlen($_REQUEST['q']))
      echo "true";
    else
      echo "false";
    

    strcspn returns the length of the part that does not contain any integers. We compare that with the string length, and if they differ, then there must have been an integer.

    There is no need to invoke the regular expression engine for this.

    0 讨论(0)
  • 2021-01-30 15:28

    Holding on to spirit of @Martin, I found a another function that works in similar fashion.

    (strpbrk($var, '0123456789')
    

    e.g. test case

    <?php
    
    function a($var) {
        return (strcspn($var, '0123456789') != strlen($var));
    }
    
    function b($var) {
        return (strpbrk($var, '0123456789'));
    }
    
    $var = array("abc", "!./#()", "!./#()abc", "123", "abc123", "!./#()123", "abc !./#() 123");
    
    foreach ($var as $v) {
        echo $v . ' = ' . b($v) .'<hr />';
    }
    
    ?>
    
    0 讨论(0)
  • 2021-01-30 15:31
    $result = preg_match("/\\d/", $yourString) > 0;
    
    0 讨论(0)
  • 2021-01-30 15:35

    you can use this pattern to test your string using regular expressions:

    $isNumeric = preg_match("/\S*\d+\S*/", $string) ? true : false;
    
    0 讨论(0)
提交回复
热议问题