Düzenli İfadelerde Sıkıntı
-
DarkF4Te bunu yazdı:
-----------------------------
preg_replace('@[^a-zA-Z0-9._]@','','benim_adım_ebruli_biraz gerçek biraz_rüya')
Replace ile istemediğin karakterleri değiştirip, uygun forma getirebilirsin, çözüm olabilir sanırım. Bu patternıde açıklayayım. Karakter kümesi içinde ^ işareti olumsuzluk ifade ediyor değilse demek yani. a-zA-Z0-9 karakterleri ve ._ karakterleri dışındaki tüm karakterleri yakalamayı sağlıyor.
Karakter sınırlaması içinde strlen kullan bence.
if(strlen($nick) < 3 || strlen$nick > 15){
echo '3-15 karakter arasında nick girmelisiniz.';
}
-----------------------------heh hocam []{3,15} diye birşey yok muydu ? bn yanlış mı hatrlıyorum ?
-
Evet var seçimi kısıtlayabiliyorsun ama replace ile denememiştim daha önce, denedim olmadı :P
Ama matchta falan kullanabiliyorsun.
if(!preg_match("@[a-zA-Z0-9._]{3,15}@","aaaaaa")){
echo 'nick uyumsuz';
}
Bu 3-15 karakter olup olmadığını kontrol etmekten ziyade 3-15 karakter arasında desene uyan bir şey var mı diye bakıyor. Örneğin aa yazarsan kabul etmez ahmetayşemehmet2 ise nick kabul eder. Çünkü desene uyan karakterler ayşenin ş'sinde bitiyor 7 karakter olmuş oluyor oysa 16 karakter. Buna uygun hale bir pattern yazılır mı bilmiyorum ama yazmaya uğraşmaya gerek yok bence. Strlen ile hallet derim. -
DarkF4Te bunu yazdı:
-----------------------------
Evet var seçimi kısıtlayabiliyorsun ama replace ile denememiştim daha önce, denedim olmadı :P
Ama matchta falan kullanabiliyorsun.
if(!preg_match("@[a-zA-Z0-9._]{3,15}@","aaaaaa")){
echo 'nick uyumsuz';
}
Bu 3-15 karakter olup olmadığını kontrol etmekten ziyade 3-15 karakter arasında desene uyan bir şey var mı diye bakıyor. Örneğin aa yazarsan kabul etmez ahmetayşemehmet2 ise nick kabul eder. Çünkü desene uyan karakterler ayşenin ş'sinde bitiyor 7 karakter olmuş oluyor oysa 16 karakter. Buna uygun hale bir pattern yazılır mı bilmiyorum ama yazmaya uğraşmaya gerek yok bence. Strlen ile hallet derim.
-----------------------------if(!preg_match('/[a-zA-Z0-9]/',$_POST['adi']))
echo 'siktir';
else
echo 'tamam';-------
ya sende ya bende problem var hocam.
zum+%üğsuk
girdiğimde tamam diyor.Türkçe karakter tamam ama bu sefer &% kabul ediyor.
-
veee bi kaç gün ardından çözüm ve kullanım şekli ;
ihtiyacınız olrusa ;
------------
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript">
function Kontrol(){
if((!document.yolla.adi.value.match(/^[A-Za-z0-9]+$/)) || (document.yolla.adi.value.length<3 || document.yolla.adi.value.length>15)){
document.yolla.adi.focus();
document.getElementById('uyari').innerHTML = '3-15 arası karakter girin (Türkçe yok)';
return false;
}else if((!document.yolla.nick.value.match(/^[A-Za-z0-9]+$/)) || (document.yolla.nick.value.length<4 || document.yolla.nick.value.length>15)){
document.yolla.nick.focus();
document.getElementById('uyari').innerHTML = 'Nick 4-15 karakter arasında olmalı (Türkçe karakter harici)';
return false;
}else if((!document.yolla.sifre.value.match(/^[A-Za-z0-9]+$/)) || (document.yolla.sifre.value.length<4 || document.yolla.sifre.value.length>15)){
document.yolla.sifre.focus();
document.getElementById('uyari').innerHTML = 'Şifrenin 4-15 karakter arasında olması şart.E bi zahmet Türkçe olmsın';
return false;
}else{
alert('Yollanıyoo');
}
}
</script>
<form action="?" name="yolla" method="POST" onSubmit="return Kontrol();">
<input type="text" name="adi"><br>
<input type="text" name="nick"><br>
<input type="text" name="sifre"><br>
<input type="submit" value="Yolla">
</form>
<div id="uyari"></div>