Espressioni regolari

Salvo Salvi

Utente Attivo
14 Nov 2012
230
0
0
ciao a tutti mi serverebbe un piccolo aiuto.
Vorrei sapere come fare tramite la funzione preg_match a controllare se una stringa inizia con un numero o con un . ed inoltre vorrei contare quanti numeri contiene questa stringa
 
ciao
puoi provare così

PHP:
<?php
function primo_carattere($str){
	$arr = str_split($str);
	//if($arr[0] >= "0" && $arr[0] <= "9"){
	if(preg_match("/[0-9]/",$arr[0])){
		return "$str: il primo carattere è un numero = ".$arr[0]."<br />";
	//}elseif($arr[0] == "."){
	}elseif(preg_match("/[.]/",$arr[0])){
		return "$str: il primo carattere è un punto<br />";
	}else{
		return "$str: il primo carattere non è ne un numero ne un punto<br />";
	}
}
function conta_numeri($str){
	$arr = str_split($str);
	$num=0;
	foreach($arr as $c => $v){
		if($v >= "0" && $v <= "9"){$num++;}
	}
	if($num > 0){
		return "la stringa $str contiene $num caratteri numerici<br />";
	}else{
		return "la stringa $str non contiene caratteri numerici<br />";
	}
}
//****test
$stringa="6aaa6j7";
echo primo_carattere($stringa);
echo conta_numeri($stringa);
$stringa=".aaa6j7";
echo primo_carattere($stringa);
echo conta_numeri($stringa);
$stringa="a9aa6j7";
echo primo_carattere($stringa);
echo conta_numeri($stringa);
$stringa=".aaaUjS";
echo primo_carattere($stringa);
echo conta_numeri($stringa);
?>

edit
puoi modificare la prima funzione con
PHP:
function primo_carattere($str){
	$arr = str_split($str);
	if(preg_match("/[0-9]|[.]/",$arr[0])){
		return "$str: il primo carattere è un numero o un punto = ".$arr[0]."<br />";
	}else{
		return "$str: il primo carattere non è ne un numero ne un punto<br />";
	}
}
 
Ultima modifica:

Discussioni simili