[英]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.