Come stristr esamina senza distinguere tra lettere maiuscole e minuscole, esiste una parola che non distingue singolare/plurale?
Come stristr esamina senza distinguere tra lettere maiuscole e minuscole, esiste una parola che non distingue singolare/plurale?
Mi sembra improbabile, perché dovrebbe disporre di un dizionario di ogni lingua, oppure generalizzare a qualche regola... No, direi proprio di no.
*********************************
Andrea
*********************************
Se non si può in questo modo, dici che c'è forse un modo particolare di scrivere la parola, es: casa/e , mela/e in modo che mi evita di scrivere tutte le parole 2 volte...Originariamente inviato da Squall1988
Mi sembra improbabile, perché dovrebbe disporre di un dizionario di ogni lingua, oppure generalizzare a qualche regola... No, direi proprio di no.
Beh tu puoi scriverti una funzione che verifichi le regole di base, appunto la a che diventa e. Però chiaramente esistono parole che da a ad e non diventano plurali e parole che non cambiano proprio dal singolare al plurale... boh! Oppure magari cercare se qualcuno ha già avuto voglia di farti un dizionario.
Oppure aspettare che magari qui passi qualcuno che ha avuto il tuo stesso problema...
*********************************
Andrea
*********************************
così su due piedi direi che sarebbe piu opportuno verificare un' occorrenza su le ultime 2 lettere, magari inserendo in un array le occorrenze... però non sarà mai affidabile al 100% e molto dipende dalla correttezza e completezza dei dati che metti nell' array
es.:
in alcuni casi anche tre lettere...Codice PHP:
$combi=array("ba"=>"be","ca"=>"che", ecc... )
//verifico
$stringa = "pesca";
foreach ($combi as $singolare=>$plurale)
{
if (substr($stringa,-2) == $singolare)
echo "$stringa è singolare e il suo plurale è ".substr($stringa,0,(strlen($stringa)-2)).$plurale;
}
Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle
il mio profilo su PHPClasses e il mio blog laboweb
Stavo pensando ad una reg exp...Originariamente inviato da dottwatson
così su due piedi direi che sarebbe piu opportuno verificare un' occorrenza su le ultime 2 lettere, magari inserendo in un array le occorrenze... però non sarà mai affidabile al 100% e molto dipende dalla correttezza e completezza dei dati che metti nell' array
es.:
in alcuni casi anche tre lettere...Codice PHP:
$combi=array("ba"=>"be","ca"=>"che", ecc... )
//verifico
$stringa = "pesca";
foreach ($combi as $singolare=>$plurale)
{
if (substr($stringa,-2) == $singolare)
echo "$stringa è singolare e il suo plurale è ".substr($stringa,0,(strlen($stringa)-2)).$plurale;
}
ho creato questo codice js e funziona, ora si tratta di creare una reg in php e richiamarla al posto di questa in js, si può fare?Originariamente inviato da dottwatson
così su due piedi direi che sarebbe piu opportuno verificare un' occorrenza su le ultime 2 lettere, magari inserendo in un array le occorrenze... però non sarà mai affidabile al 100% e molto dipende dalla correttezza e completezza dei dati che metti nell' array
es.:
in alcuni casi anche tre lettere...Codice PHP:
$combi=array("ba"=>"be","ca"=>"che", ecc... )
//verifico
$stringa = "pesca";
foreach ($combi as $singolare=>$plurale)
{
if (substr($stringa,-2) == $singolare)
echo "$stringa è singolare e il suo plurale è ".substr($stringa,0,(strlen($stringa)-2)).$plurale;
}
function controlla1(){
var f = document.mioform1;
var parole = new RegExp("\\b(mel(a|e)|per(a|e))\\b");
var stringa = document.mioform1.nome.value;
if(stringa.match(parole) && stringa.match(parole)[0]){
f.nome.style.backgroundColor='red'
alert("La parola '"+stringa.match(parole)[0]+"' non è ammessa");
return false;
}
un po' in ritardo ma sempre utilie a chi ne avesse bisogno, naturalmente, è sempre possibile aggiungere dei suffissi per aumentarne la precisione:
logicamente, si può scambiare il tutto ed ottenere il plurale dal singolare.Codice PHP:
function plur2sing($stringa) {
$stinga = strtolower($stinga);
$combi=array("be"=>"ba",
"che"=>"ca",
"cchie"=>"cchio",
"ce" => "cia",
"de" => "da",
"fe" => "fa",
"ghe" => "ga",
"glie" => "glia",
"le" => "la",
"me" => "ma",
"ne" => "na",
"pe" => "pa",
"que" => "qua",
"re" => "ra",
"se" => "sa",
"te" => "ta",
"ve" => "va",
"ze" => "za",
"bi" => "bo",
"occhi" => "occhio",
"chi" => "co",
"rci" => "rco",
"vortici"=>"vortice",
"rtici" => "rtico",
"ci" => "cio",
"fedi" => "fede",
"di" => "do",
"fi" => "fo",
"gi" => "go",
"ghi" => "go",
"gli" => "glio",
"armi" => "arme",
"li" => "lo",
"mi" => "mo",
"oni" => "one",
"rni" => "rno",
"treni"=> "treno",
"oni" => "one",
"ini" => "ino",
"eni" => "eno",
"pi" => "po",
"ari" => "are",
"ccessori" => "ccessorio",
"bri" => "bro",
"ri" => "re",
"si" => "so",
"isti" => "ista",
"ti" => "to",
"zi" => "zo",
"ii" => "io",
"erei" => "ereo",
"nei" => "neo",
"ue" => "ua");
$sing_word = $stringa;
foreach ($combi as $plurale=>$singolare)
{
if (substr($stringa,strlen($plurale)*-1) == $plurale) {
$sing_word = substr($stringa,0,strlen($stringa)-strlen($plurale)).$singolare;
break;
}
}
return $sing_word;
}
ciao!
Non è banale e ci sono un sacco di eccezioni, di piu': come ogni lingua viva è in continua evoluzione.
Ad esempio solo con i sostantivi:
"euro->euro"/"euro->euri",
"pomodoro->pomidoro"/"pomodoro->pomodori",
"camerata->camerata"/"camerata->camerati",
"paracadute-> paracadute" ecc..
A voler essere precisi, penso ci si debba rivolgere all'Accademia della Crusca.