تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف افحص نص هل يحتوي على حروف ورموز
#1
السلام عليكم ورحمة الله وبركاته
منذ عدة ايام بدات بدراسه فيجوال بيسك
خطر على بالي اليوم لو قررت وضع textbox من اجل كلمة المرور واذا قام المستخدم بوضع فقط احرف تظهر له رساله انه يجب وضع خليط بين حروف وارقام
واذا وضع فقط ارقام تظهر له نفس رساله
استطعت التوصل الى جعله يدمج احرف وارقام مع بعض ولكن لم استطيع جعله يدمج معهم ايضا رموز مثل !@#$ الخ
في طريقه ولكن طويله افحص كل عنصر بهذه الرموز وهنا تصبح الشروط كثيره لانه بكون مضطر مقارنه كل char هل يسوي مثلا @ او يساوي # او ! ... الخ
هذه تجربتي


كود :
Public Class Form1

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       If (checkLetter(txtValue.Text)) Then
           MsgBox("Ok")
       End If

       

   End Sub
   Private Function checkLetter(z As String) As Boolean
       Dim x As Boolean = False
       Dim y As Boolean = False

       For index = 0 To z.Length - 1
           If (Char.IsNumber(z(index))) Then
               x = True
           ElseIf (Char.IsLetter(z(index))) Then
               y = True
           End If
         
       Next ' end for
       If (x And y) Then
           Return True
       End If

       Return False
   End Function


End Class


سؤالي هنا ممكن عمل نفس الفكرة بطريقه اسهل بالمعالجه ؟ بدون استخدام regex
مثل اذا في داله تتاكد انه نص معين يحتوي على احرف وارقام ورموز خاصه ؟ 
ايضا ماهي الداله التي نفحص في char معين لكي نعرف هل هو رمز خاص او لا مثلا !@#$ّ الخ من رموز
مثل هنا استخدمت isNumber حتى اعرف هل هو رقم او لا
الرد }}}
تم الشكر بواسطة:
#2
(30-03-16, 03:27 PM)foxweb كتب :
كود :
Public Class Form1

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        If (checkLetter(txtValue.Text)) Then
            MsgBox("Ok")
        End If

        If (checkNoLetterOrDigit(txtValue.Text)) Then
            MsgBox("Ok")
        End If
    End Sub

    Private Function checkLetter(ByVal z As String) As Boolean

        For index = 0 To z.Length - 1
            If (Char.IsLetterOrDigit(z(index))) Then
                Return True
            End If

        Next ' end for

        Return False
    End Function

    Private Function checkNoLetterOrDigit(ByVal z As String) As Boolean

        For index = 0 To z.Length - 1
            If (Not Char.IsLetterOrDigit(z(index))) Then
                Return True
            End If

        Next ' end for

        Return False
    End Function

End Class
الرد }}}
تم الشكر بواسطة:
#3
جزاك الله خير
لكن الكود لايعمل بالشكل المطلوب وقمت بتجريب هذه الداله IsLetterOrDigit  قبل كتابه الموضوع
لو انتبهت للداله فيها or يعني او رقم او حرف فهي ترجع لك true اذا المستخدم ادخل فقط حروف راح تبقى النتيجه true
انا هنا اريده يدخل خليط من الاحرف والارقام و الرموز لانها كلمه مرور وكل ماكانت الكلمه معقده كان صعب التخمين عليها
ايضا الكود قمت ارفاقه اخي الحبيب فيه مشكلة يتوجب استخدام and
لانه لو بتجرب الكود وتضع هكذا @@@@ بداخل textbox راح يقبله منك ويطبع ok وهذا يعتبر خطا
المفروض يصبح الشرط هكذا

كود :
If (checkLetter(txtValue.Text) And checkNoLetterOrDigit(txtValue.Text)) Then
           MsgBox("Ok")
       End If


استفدت من جمله نفي الشرط في هذا الكود
كود :
Not Char.IsLetterOrDigit(z(index))

للتاكد من ادخال رموز  ... بشكرك كثيرا الان الكود يعمل معي 100 % Smile

كود :
Public Class Form1

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       If (checkLetter(txtValue.Text)) Then
           MsgBox("Ok")
       End If

       

   End Sub
   Private Function checkLetter(z As String) As Boolean
       Dim x As Boolean = False
       Dim y As Boolean = False
       Dim p As Boolean = False

       For index = 0 To z.Length - 1
           If (Char.IsNumber(z(index))) Then
               x = True
           ElseIf (Char.IsLetter(z(index))) Then
               y = True
           ElseIf (Not Char.IsLetterOrDigit(z(index))) Then
               p = True
           End If
         
       Next ' end for
       If (x And y And p) Then
           Return True
       End If

       Return False
   End Function


End Class


لكن مازال الكود كما هو يمر بالعديد من العمليات
فهل ممكن تحسين الكود اكثر من ناحيه الاداء Sleepy
تحيتي للجميع
الرد }}}
تم الشكر بواسطة:
#4
http://www.codeproject.com/KB/miscctrl/P...play=Print
http://www.vbforums.com/showthread.php?6...d-Strength
https://www.google.com/search?q=Password...jfnzvKpVdo
الرد }}}
تم الشكر بواسطة: foxweb
#5
PHP كود :
Dim regexItem = New Regex("^[a-zA-Z0-9 ]*$")

If 
regexItem.IsMatch() Then
    

End 
If 
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة تحويل الأرقام إلى حروف Adel27213 2 495 18-11-23, 01:40 AM
آخر رد: sniper2030
Rainbow [كود] كود اظهار تنبيه عند البحث بأقل من 3 حروف محمد مسافر 3 641 04-12-22, 10:10 AM
آخر رد: أبو خالد الشكري
  [VB.NET] كود لفتح ملف اكسس خارجي يحتوي على كلمة سر فيجول استوديو 2015 يوسف العزير 14 1,793 20-11-22, 12:26 PM
آخر رد: يوسف العزير
  [VB.NET] كود لفتح ملف اكسس خارجي يحتوي على كلمة سر فيجول استوديو 2015 يوسف العزير 0 617 05-11-22, 03:08 PM
آخر رد: يوسف العزير
Rainbow [VB.NET] عرض حقل يحتوي على قيم مختلفة بشكل أفقي في تقرير الكرستال ريبورت معتز حسن 0 1,031 09-02-22, 12:32 AM
آخر رد: معتز حسن
  [سؤال] هل من سبيل لحفظ ملف csv يحتوي علي لغه عربيه لعمل استراد لقاعده البيانات ؟ dametucorazon 6 13,812 13-11-21, 12:49 AM
آخر رد: _11Basil
  كود منع ادخال ارقام او حروف داخل التيكست بوكس ابو نور الهدى 2 1,808 05-10-21, 11:14 AM
آخر رد: ابو نور الهدى
  تحويل الارقام الي حروف محمد بوقزاحة 7 8,180 12-08-21, 09:03 AM
آخر رد: Jamil Alanesi
  كود منع ادخال ارقام او حروف داخل التيكست بوكس ابو نور الهدى 2 1,416 01-05-21, 06:15 AM
آخر رد: أبووسم
Exclamation تسجيل الدخول الى موقع يحتوي على Captcha باستخدام WebBrowser Basil Abdallah 4 1,933 01-02-21, 11:16 PM
آخر رد: Basil Abdallah

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم