Langsung ke konten utama

Check jika string hanya mengandung angka PHP

ctype_digit()


Cara termudah dan tercepat untuk mengecek seluruh karakter string adalah nomor ialah dengan menggunakan ctype_digit ( )

$var = '1337';

if(ctype_digit($var)){
   echo 'This string contains only digits';
} 

preg_match()


Cara lain untuk mengecek apakah kalimat tersebut hanya mengandung angka adalah dengan menggunaakan preg_match(). preg_match() akan mencari suatu pola dan mengembalikan jumlah pola yang sesuai. Dalam contoh berikut akan digunakan 3 macam pola yang sebetulya memiliki makna yang sama. String harus mengandung hanya angka.

if(preg_match('/^\d+$/',$var)){
   echo 'This string contains only digits';
} 

if(preg_match("/^[0-9]+$/",$var)){
   echo 'This string contains only digits';
} 

if(preg_match("/^[[:digit:]]+$/",$var)){
   echo 'This string contains only digits';
}

[0-9] dan [:digit:] adalah character classes that means we are only looking for numbers in the string. In other words,[0-9] is a pattern that covers all digits:0 1 2 3 4 5 6 7 8 9. \d is a shorthand of [0-9] and [:digit:].

Jangan gunakan is_numeric() atau is_int()

is_numeric() and is_int() are not really meant to check if a string contains only numbers.
is_numeric() will return TRUE if a string is a numeric string but don't forget a numeric string is not necessarily an integer. A numeric string can also be a decimal number or a negative number. That is why you would not want to use is_numeric() if you are only looking for positive integers (0 1 2 3 4 5 6 7 8 9).
$tests = array('1.3', '-2', '1e3');

foreach($tests as $element){
 if(is_numeric($element)) {
  echo $element.' is numeric
';
 }
}
This script will output:
1.3 is numeric
1e3 is numeric
-2 is numeric
is_int() will return TRUE if the type of a variable is integer. That means it will return TRUE for integers that are positive or negative numbers.
if(is_int(-1)) {
 echo 'This number is an integer';
}
is_int() checks the type of a variable (a variable can be a boolean, an integer, a string, an array or plenty other things). As you may want to check if the values sent through a form contains only numbers, don't forget that everything from $_POST is considered as a string. So doing something like is_int($_POST['var']) will always return FALSE, even if this string contains numbers only.
$var = '3';

if(!is_int($var)){
 echo '$var is a '.gettype($var).', it is not an integer';
}
This script will output:
3 is a string, it is not an integer

Komentar

Postingan populer dari blog ini

Use X++ wildcard (LIKE and NOT LIKE) in X++ select statement

For x++ select statements:  select firstOnly batchHistory      where batchHistory.Caption  LIKE  "*Test*"  For x++ queries:  queryBuildRange.value(*Test*); Note the LIKE instead of a '==' and the wildcards inside of the quotations. All other combinations of wildcard usage will work here. This is the same functionality as what the users would put in the grid filtering(eg. '*TEST*' in the caption field filter on the batch tasks form).  However, if you want to find all Captions that do not have the word Test in them (NOT LIKE, !LIKE), you will have to modify the above example slightly.  For x++ select statements:  select firstOnly batchHistory      where  !( batchHistory.Caption LIKE "*TEST*" ) ;  For x++ queries:  queryBuildRange.value(!*Test*);

Format Label Tom Jerry (MS Word)

Setelah beberapa lama aku tidak membuat label undangan, tiba-tiba kemarin aku diminta untuk membuat label undangan Wisuda dengan menggunakan label merek Tom & Jerry (TJ). Harusnya sih menjadi tugas sekretaris panitia tapi karena yang bersangkutan ada tugas di luar kantor maka aku yang membereskannya. Mula-mula aku membuat format labelnya dengan cara manual, tapi untung ada pak Mulyadi (staf tata usaha) yang menyarankan aku untuk mengunduh format label yang telah ada di Internet. Mulailah aku browsing di google dan menemukan format label berbagai ukuran dari website Tom & Jerry di alamat berikut  http://tjlabels.com/en/download.html  (yang link ini agak rempong krn pake masukin nomor captcha-captcha-an). Sedangkan kalau yang link ini langsung pilih file ga pake nomor captcha-captcha-an ( http://tjlabels.com/assets/download/ ). Ternyata juga ada banyak berbagai blog yang menyediakan  link download seperti ini, tapi aku mem- posting  artikel ini ...

Solved : Update on a valid time state table is not allowed without specifying a ValidTimeStateUpdateMode

How To Solve Error :  Cannot edit a record in Position hierarchies (xyz). Update on a valid time state table is not allowed without specifying a ValidTimeStateUpdateMode. select forUpdate * from xyz where xyz.recid== _RecId ; try { ttsBegin; _Value= “Abcd”; xyz.Name = _Value; xyz.validTimeStateUpdateMode(ValidTimeStateUpdate::Correction); xyz.ValidFrom =today(); xyz.ValidTo=dateMax(); xyz.update(); ttsCommit; } catch { ttsAbort; }