تقييم الموضوع :
  • 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 
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] التعامل مع الباركود حروف وأرقام ..؟ adel27 5 108 21-11-16, 10:45 PM
آخر رد: محمود بكرى
  [سؤال] طلب كود لتوليد قائمة كلمات سر عشواية (حروف فقط) فارس جراح 3 114 13-11-16, 10:40 PM
آخر رد: فارس جراح
  فيجوال 2015 لا يحتوي على ريبورت ؟ samira20 3 100 02-11-16, 10:14 PM
آخر رد: أبو عمر
  دالة لجعل مربع النص لا يقبل حروف atefkhalf2004 6 136 17-09-16, 12:38 AM
آخر رد: أبو عمر
  [VB.NET] عمل Setup او تحزيم لبروجكيت يحتوي SQl database بحيث يعمل على اي حاسبه لا تحتوي على SQ prog.alaa2012 4 197 16-09-16, 12:33 PM
آخر رد: prog.alaa2012
  [سؤال] عندما تكون الخلية في قاعدة البيانات مكونه من حروف وارقام بادئ 21 292 09-09-16, 11:13 AM
آخر رد: بادئ
  تبديل او مسح حروف من التكست بوكس Mohamed20 5 191 22-07-16, 09:46 PM
آخر رد: mervandzz
Smile [سؤال] برنامج توليد حروف وارقام HASSOUN 2 278 04-04-16, 02:07 AM
آخر رد: HASSOUN
  كيف؟ الحصول على اسم المجلد الذي يحتوي اسم ملف من رابط سعود 2 255 06-09-15, 12:07 PM
آخر رد: سعود
  تحويل الأرقام إلى حروف djelloul 1 742 25-02-15, 06:31 PM
آخر رد: djelloul

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


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