برگزیده های پرشین تولز

کنترل کاربر در وارد کردن حروف فارسی و تعداد آن

amirepsilon

Registered User
تاریخ عضویت
21 ژوئن 2006
نوشته‌ها
455
لایک‌ها
2
محل سکونت
Iran
سلام

میخوام بفهمم کاربر داخل جعبه متن فارسی وارد کرده یا نه و چند حرف وارد کرده که بتونم جلوشو بگیرم !

ممنون
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
حالا که این سوالو پرسیدید ! منم 2 سوال دارم

حتما پر شدن باکس ! رو میشه با empty() چک کرد ؟

و اینکه چطوری با استفاده از ereg دسته خاصی رو فقط اجازه داد که پر بشه ! مثلا فقط عدد ! یا مثلا با الگوی خاصی مثل ایمیل ! وبسایت ! و ...
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
حالا که این سوالو پرسیدید ! منم 2 سوال دارم

حتما پر شدن باکس ! رو میشه با empty() چک کرد ؟

و اینکه چطوری با استفاده از ereg دسته خاصی رو فقط اجازه داد که پر بشه ! مثلا فقط عدد ! یا مثلا با الگوی خاصی مثل ایمیل ! وبسایت ! و ...
برای این کار من فکر نمیکنم که empty روش صد در صدی باشه. به نظر من این کد بهتر هست:
PHP:
if(strlen(trim($_POST[field])) > 0) {
..............
نحوه کار ereg یا preg_match به این شکل هست که شما یک عبارت باقاعده تعریف میکنید. حالا هر رشته ای یا با این عبارت منطبق هست یا نیست. مثلاً
کد:
^[0-9\.\+\-]*$
عبارت باقاعده ای هست که فقط اعداد با اون منطبق هستند. شما میتونید به همین شکل عبارتهای باقاعده ای داشته باشید که فقط ایمیل ها باهاش منطبق باشند، یا فقط نشانی وب سایت و ...
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
میشه یه مثال بزنی ! برای ereg یا یه صفحه معرفی کنی که یه مثال توش باشه !


0-9 برای این هست که بفهمه فقط اعداد رو بگیره ^ [ و .. برای چیه ؟


مرسی
 

sasan_66

کاربر تازه وارد
تاریخ عضویت
18 جولای 2006
نوشته‌ها
450
لایک‌ها
0
.\ نشان دهنده ي كاراكتر .
+\ نشان دهنده ي كاراكتر +
-\ نشان دهنده ي كاراكتر -
[ ] نشون دهنده ي مجموعه
* تكرار مجموعه ي بالا كه شامل اعداد و . و +و - و صفر بار يا بيشتر
^ آغاز رشته
$ پايان رشته
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
ممنونم ساسان جان . میشه یه مثال کامل از این تابع برام بذارید ؟
 

sasan_66

کاربر تازه وارد
تاریخ عضویت
18 جولای 2006
نوشته‌ها
450
لایک‌ها
0
مثلا براي تشخيص يه ايميل مي توني از الگوي زير استفاده كني
کد:
(\w+\.)*\w+@(\w+\.)+[A-Za-z]+
w\ در واقع خلاصه شده ي اين عبارته [a-zA-z0-9] يعني كاراكتر مورد نظر مي تونه شامل تمام حروف انگليسي و ارقام 0 الي 9 باشه
علامت + ميگه كه عبارته [a-zA-z0-9] مي تونه يك بار يا بيشتر تكرار شه
علامت * هم ميگه (.\+w\) صفر بار يا بيشتر تكرار شه
براي مثال اين الگويي كه تا اينجا گفتم قسمت
کد:
a.b.
اين ايميل رو بر ميداره
+w\ اين قسمت رو هم گفتم در واقع مياد قسمت c ايميل بالا رو بر ميداره
كاراكتر @ هم كه يهني همون @ :D
اينم
کد:
(\w+\.)+
مثل همون
کد:
(\w+\.)*
فرقش توي علامت + است كه به جاي * اومده. + يعني تكرار يه چيز به تعداد يك يا بيشتر و در واقع اين عبارت مياد قسمت
کد:
d.f.
ايميل بالا رو ور مي داره. دقت كن كه اينجا بايد از + به جاي * استفاده كرد چون صد در صد بايد بعد از @ و قبل از com يه چيزي باشه.
بعدشم كه عبارته
کد:
[A-Za-z]+
تكرار يك بار يا بيشتر مجموعه حروف كوچك و بزرگ انگليسي رو نشون ميده و عبارت com ايميل بالا رو نشون مي ده
تابع ereg سه تا پارامتر ميگيره اوليش الگوي مورد نظر رو مي گيره دومي رشته اي رو كه مي خواي توش الگوي مورد نظر رو جستجو كني و سومي كه يه پارامتر اختياري است اون تيكه هاي كه تو الگوت داخل پرانتز گذاشتي و اونارو توي رشته مورد نظر پيدا كرده به صورت يه آرايه توي اين متغير قرار ميده. خروجي اين تابع هم از نوع بولينه. اگه ااگو پيدا شه true و در غير اين صورت false بر گردونده مي شه
 
بالا