الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التحقق من المدخلات ..

بدأه so0oma في 19 مايو 2012 · 3 رد · 1,478 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

اريد اضافة تحقق من خانات المدخلات في الموقع

استطعت عمل التحقق من الايميل وارقام الهاتف والجوال

اريد عمل تحقق من

1. ان يكون الادخال في الخانه حروف وارقام بدون فراغات بينهم مثال cs111,xe323 cse123

2. ان تكون المدخلات ارقام فقط

3.ان تكون المخلات حروف فقط

#2

إبحث عن الـregex وطريقة مطابقة النصوص بإستخدامها : https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

الـregex المناسب مع الأرقام والحروف, كبيرة أو صغيرة, فقط :

^[a-zA-Z0-9]+$

ومعناه أن النص الذي أبحث عنه : يبدأ ^ وينهي $ بأحرف من a إلى z أو a إلى Z أو 0 - 9 بأي تكرار +.

var string = "212232";
var regex = new RegExp("^[a-zA-Z0-9]+$");
if (regex.test(string) == true ) {
    alert("OK");
} else {
    alert("Doesn't match");
}

المناسب مع الأرقام فقط :

^[0-9]+$

يبدأ ^ وينهي $ بمحرفات من 0 - 9 بأي تكرار +

var string = "212232";
var regex = new RegExp("^[0-9]+$");
if (regex.test(string) == true ) {
    alert("OK");
} else {
    alert("Doesn't match");
}

مع الأحرف فقط , كبيرة أو صغيرة :

^[a-zA-Z]+$

يبدأ ^ وينهي $ بأحرف من a إلى z أو a إلى Z بأي تكرار +

var string = "212232";
var regex = new RegExp("^[a-zA-Z]+$");
if (regex.test(string) == true ) {
    alert("OK");
} else {
    alert("Doesn't match");
}

هذا مثال شامل عليها :

<!DOCTYPE html>
<head>
  <meta charset="utf-8">
  <title>Test</title>
  <script>

    function is_numbers_and_letters(string) {
      var regex   = new RegExp("^[a-zA-Z0-9]+$");
      return regex.test(string);
    };

    function is_numbers_only(string) {
      var regex   = new RegExp("^[0-9]+$");
      return regex.test(string);
    };

    function is_letters_only(string) {
      var regex   = new RegExp("^[a-zA-Z]+$");
      return regex.test(string);
    };


    function get_value(id) {
      return document.getElementById(id).value;
    };

    function set_value(id, value) {
       document.getElementById(id).innerHTML  = value;
    };

    function check() {
      var c_value = get_value("a");
      if( is_numbers_and_letters(c_value) ) {
        set_value("a_state", "passed");
      } else {
        set_value("a_state", "failed");
      };

      var b_value = get_value("b");
      if( is_numbers_only(b_value) ) {
        set_value("b_state", "passed");
      } else {
        set_value("b_state", "failed");
      };

      var c_value = get_value("c");
      if( is_letters_only(c_value) ) {
        set_value("c_state", "passed");
      } else {
        set_value("c_state", "failed");
      };
    };
  </script>
</head>
<body>
  <p>Letters or numbers without spaces</p>
  <p id="a_state"><p>
  <input name="a" type="text" id="a">

  <p>Numbers ONLY</p>
  <p id="b_state"><p>
  <input name="b" type="text" id="b">

  <p>Letters ONLY</p>
  <p id="c_state"><p>
  <input name="c" type="text" id="c">

  <button onclick="check();">Check</button>
</body>
</html>

تم تعديل هذه المشاركة بواسطة Mr.B في 20 مايو 2012 في 02:06

#3

مشكور اخي ما قصرت ..

افادني المثال كثيرررر

ابغى اتحقق انه المدخلات اول المدخلات حروف

اما حرفين او 3 حروف

والباقي 3 ارقام

زي كذا xx111 او xx111

عملته بالشكل هذا

var regex2 = new RegExp("^[a-zA-Z]{2}|[a-zA-Z]{3}+[0-9]{3}+$");// numbers_and_letters

بس ما طلعت النتيجة زي ما ابغى ..

هل طريقتي خطا ؟؟

#4

الـ+ ليست للجمع بين أجزاء الـregex بل تعني "مرة أو أكثر" :

^m+$

تعني يبدأ بـm مرّة أو أكثر وينتهي بها (سيطابق m, mmmm, mmmmmm .. إلخ).

^1|2$

تعني يبدأ وينتهي بـ1 أو 2 (إما 1 أو 2).

ماتريده :

يبدأ (^) بحروف ([a-zA-Z]) مرتين أو ثلاث ({2, 3}) ثٌم أرقام ([0-9]) ثلاث مرات ({3}) النهاية ($).

هذا تفسيرها :

^[a-zA-Z]{2,3}[0-9]{3}$

يمكنك تعلم وتجربة إنشاء الـregex عن طريق هذا التطبيق :

<!DOCTYPE html>
<head>
  <script>
  function check() {
    var state   = document.getElementById("state");
    var text    = document.getElementById("text");
    var myregex = document.getElementById("regex");
    var regex   = new RegExp(myregex.value);
    if( regex.test(text.value) == true) {
      state.innerHTML = "Matchs";
    } else {
      state.innerHTML = "Doesn't match";
    }
  }
  </script>
</head>
<body>
  <div>State  : <b id="state"></b></div>
  <div>Regex  : <input name="regex" id="regex"></div>
  <div>String : <input name="text" id="text"></div>
  <button onclick="check();">Check</button>
</body>
</html>

إكتب في الحقل Regex التعبير الذي تريده. وفي String إكتب النصّ وإضغط على Check للتحقق من أنه سليم.

هنا كتاب عربي وجده عن التعابير القياسية : شرح التعابير القياسية regular expression

تم تعديل هذه المشاركة بواسطة Mr.B في 21 مايو 2012 في 01:24

مواضيع مشابهة