Düzenli İfadelerde Sıkıntı
-
1 senedi elime program değmedi nası belli :/ düzenli ifadelerle o kadar uğraştığım halde hatırlayamıyorum.
Şimdi bir kontrol yapıcam ; \w{3,15} olsun ve Türkçe karakterlerde olsun.
match(/^[a-zA-Z0-9_]+$/) yapayım dedim, bu seferde Türkçe karakterleri nasıl çıkartacağımı unuttum.
^[a-zA-Z0-9_.^ğĞüÜşŞıİöÖçÇ]+$
şeklinde kullanamıyor muyduk ?
-
edit edit edit edit: Çözdüm isteyene;
------
<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>
-
7up
-
hocam kodlara döndün döneli her gün bi kaç konu açıyosun :D
-
angels_demos bunu yazdı:
-----------------------------
hocam kodlara döndün döneli her gün bi kaç konu açıyosun :D
-----------------------------abi Türkçe-ingilizce bakıyorum yok buamadım.O kadar düzenli ifade konusu var halledemedim, denedimde olmuyor.sinir oldum :)
-
zumsuk bunu yazdı:
-----------------------------
1 senedi elime program değmedi nası belli :/ düzenli ifadelerle o kadar uğraştığım halde hatırlayamıyorum.
Şimdi bir kontrol yapıcam ; \w{3,15} olsun ve Türkçe karakterlerde olsun.
match(/^[a-zA-Z0-9_]+$/) yapayım dedim, bu seferde Türkçe karakterleri nasıl çıkartacağımı unuttum.
^[a-zA-Z0-9_.^ğĞüÜşŞıİöÖçÇ]+$
şeklinde kullanamıyor muyduk ?
-----------------------------^[a-zA-Z0-9_.^ğĞüÜşŞıİöÖçÇ]+$ bu nedir hocam ?
Zaten normalde türkçe karakterleri almaması lazm a-zA-Z nin
-
gVeR bunu yazdı:
-----------------------------
zumsuk bunu yazdı:
-----------------------------
1 senedi elime program değmedi nası belli :/ düzenli ifadelerle o kadar uğraştığım halde hatırlayamıyorum.
Şimdi bir kontrol yapıcam ; \w{3,15} olsun ve Türkçe karakterlerde olsun.
match(/^[a-zA-Z0-9_]+$/) yapayım dedim, bu seferde Türkçe karakterleri nasıl çıkartacağımı unuttum.
^[a-zA-Z0-9_.^ğĞüÜşŞıİöÖçÇ]+$
şeklinde kullanamıyor muyduk ?
-----------------------------^[a-zA-Z0-9_.^ğĞüÜşŞıİöÖçÇ]+$ bu nedir hocam ?
Zaten normalde türkçe karakterleri almaması lazm a-zA-Z nin
-----------------------------alıyor abi ya ^ve$ ile başı sonu olmuyor ama ortasında tama diyor, onda olmasada alttaki nickte sıkıntı çıkıyor.
-
Hiçbişey anlamadım hocam karşılaştırmaya çalıştığın kelimeyide yazıp söylesen sorun ne...
-
Olayı tam anlamadım ama \w{3,15} olsun diyorsan
preg_match_all('@[a-zA-Z0-9ğĞüÜşŞıİöÖçÇ]{3,15}@','denemeşşppğ denemeler fıstıkçışahap aa',$var);print_r($var);
Verdiğin örnekte başındaki ^ karakteri en baştan bu kurala uyuyorsa çalışır. Aynı şekilde sonunda da $ olduğuna göre tam olarak istediğin özellikleri taşıması gerekir. Benim yaptığımsa uyan bütün kayıtları topluyor preg_matchla yaparsan da uyan ilk kayıtı getirir.Son mesajda da Türkçe karakterleri ayıklamaya çalıştığını söylemişsin sanırım.
echo preg_replace('@[ğĞüÜşŞıİöÖçÇ]@','','denemeşşppğ denemeler fıstıkçışahap aa');
Onun içinde replace kullanabilirsin. Umarım yardımcı olmuşumdur, kolay gelsin. -
hocam benim problemim şu
3-15 arası veri girilsin, Türkçe karakterler içinde olmasın ^+& falanda olamsın.
a-zA-Z0-9_. olsun.Bu.ORtada, sağda solda işğüğü +'^+ falan olmasın :) tek istediğim bu.
-
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.';
}