簡體   English   中英

檢查變量是否有數字php

[英]Check if variable has a number php

我想檢查一個變量是否有一個數字,我只是想知道是否有一個我不在乎它是否有任何其他內容如下:

"abc" - false
"!./#()" - false
"!./#()abc" - false
"123" - true
"abc123" - true
"!./#()123" - true
"abc !./#() 123" -true

如果你想知道所有的數字,但是如果它只有一個,那么有很簡單的方法可以做到這一點。 謝謝你的幫助。

你可以使用strcspn函數:

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

strcspn返回不包含任何整數的部分的長度。 我們將它與字符串長度進行比較,如果它們不同,則必須有一個整數。

無需為此調用正則表達式引擎。

$result = preg_match("/\\d/", $yourString) > 0;

堅持@Martin的精神,我找到了另一個以類似方式工作的功能。

(strpbrk($var, '0123456789')

例如測試用例

<?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 />';
}

?>

這應該可以幫到你:

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

您可以從preg_match函數中獲得更多信息,因此請查看其手冊

您可以使用此模式使用正則表達式測試您的字符串:

$isNumeric = preg_match("/\S*\d+\S*/", $string) ? true : false;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM