آژانس هواپیماییexchanging

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

شروع موضوع توسط amirepsilon ‏20 سپتامبر 2007 در انجمن PHP

  1. amirepsilon

    amirepsilon Registered User

    تاریخ عضویت:
    ‏21 ژوئن 2006
    نوشته ها:
    453
    تشکر شده:
    2
    محل سکونت:
    Iran
    سلام

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

    ممنون
     
  2. firebird

    firebird Registered User

    تاریخ عضویت:
    ‏2 جولای 2005
    نوشته ها:
    1,424
    تشکر شده:
    9
  3. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    حالا که این سوالو پرسیدید ! منم 2 سوال دارم

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

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

    firebird Registered User

    تاریخ عضویت:
    ‏2 جولای 2005
    نوشته ها:
    1,424
    تشکر شده:
    9
    برای این کار من فکر نمیکنم که empty روش صد در صدی باشه. به نظر من این کد بهتر هست:
    PHP:
    if(strlen(trim($_POST[field])) > 0) {
    ..............
    نحوه کار ereg یا preg_match به این شکل هست که شما یک عبارت باقاعده تعریف میکنید. حالا هر رشته ای یا با این عبارت منطبق هست یا نیست. مثلاً
    کد:
    ^[0-9\.\+\-]*$
    عبارت باقاعده ای هست که فقط اعداد با اون منطبق هستند. شما میتونید به همین شکل عبارتهای باقاعده ای داشته باشید که فقط ایمیل ها باهاش منطبق باشند، یا فقط نشانی وب سایت و ...
     
  5. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    میشه یه مثال بزنی ! برای ereg یا یه صفحه معرفی کنی که یه مثال توش باشه !

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


    مرسی
     
  6. sasan_66

    sasan_66 کاربر تازه وارد

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

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    ممنونم ساسان جان . میشه یه مثال کامل از این تابع برام بذارید ؟
     
  9. sasan_66

    sasan_66 کاربر تازه وارد

    تاریخ عضویت:
    ‏18 جولای 2006
    نوشته ها:
    450
    تشکر شده:
    0
    مثلا براي تشخيص يه ايميل مي توني از الگوي زير استفاده كني
    کد:
    (\w+\.)*\[email protected](\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 بر گردونده مي شه
     
  10. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    خیلی خیلی خیلی ممنونم