PDA

View Full Version : سوال: تشخیص وجود کاراکتر خاص در یک رشته



saeed hg
جمعه 29 بهمن 1389, 23:07 عصر
سلام دوستان، چه جوری میشه وجود یک کاراکتر خاص رو در یک رشته ی ورودی بررسی کرد؟ مثال: من می خوام وقتی کاربر در تکست باکس آدرس ایمیل رو وارد میکنه و کلید اینتر رو فشار میده چک کنم که اگه کاراکتر @ رو وارد نکرده بود ، بهش پیغام بدم که ایمیلی که وارد کرده نامعتبره! چه جوری اینکارو انجام بدم؟ در گوگل به زبان انگلیسی سرچ کردم اما چیزه دندون گیری گیرم نیومد.
:متفکر:

virtual_matador
شنبه 30 بهمن 1389, 09:08 صبح
سلام
می تونی از کد زیر استفاده کنی:

If TextBox1.Text.Contains("@") = false Then
MessageBox.Show("Invalid Email Address")
End If

saeed hg
شنبه 30 بهمن 1389, 23:25 عصر
سلام، virtual_matador (http://barnamenevis.org/member.php?28171-virtual_matador) عزیز ممنون .دیشب با کمک دکتر گوگل حل شد، روشی که شما گفتید امتحان کرده بودم که جواب نمیده .به روش زیر حل شد: یک تکست باکس و یک باتون و در رویداد کلیک باتون بنویسید:


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim yu As Integer = TextBox1.Text.IndexOf("@")
If yu < 0 Then
MsgBox("no")
Else
MsgBox("yes")

End If
End Sub

mehdi.mousavi
یک شنبه 01 اسفند 1389, 00:12 صبح
سلام.
به صرف وجود یا عدم وجود @ در string وارد شده، نمیشه اینطور قضاوت کرد که رشته وارد شده یک Email Address معتبره.
برای اینکار نیز می تونید از Regular Expression زیر استفاده کنید:


([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})

در واقع، منظورم اینه:



If Regex.IsMatch(myStr, "([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})", RegexOptions.IgnoreCase Or RegexOptions.CultureInvariant Or RegexOptions.IgnorePatternWhitespace Or RegexOptions.Compiled) Then
'Valid Email address
Else
'Invalid Email Address
End If

موفق باشید.

saeed hg
یک شنبه 01 اسفند 1389, 00:40 صبح
امتحان کردم اما جواب نداد، چرا Regex رو ویبی دات نت نمی شناسه؟

mehdi.mousavi
یک شنبه 01 اسفند 1389, 00:54 صبح
امتحان کردم اما جواب نداد، چرا Regex رو ویبی دات نت نمی شناسه؟

سلام.
آیا namespace مربوطه رو Import کرده اید؟


Imports System.Text.RegularExpressions

موفق باشید.

Reza,M
یک شنبه 01 اسفند 1389, 09:35 صبح
با سلام
من چك كردم جواب درست نمي ده بعنوان مثال
e@t.co را درست در نظر ميگيرد

mehdi.mousavi
یک شنبه 01 اسفند 1389, 10:08 صبح
با سلام من چك كردم جواب درست نمي ده بعنوان مثال
e@t.co را درست در نظر ميگيرد

سلام.
e@t.co یه Email Address معتبر هستش. در هر حال، منظورم این نبود کد فوق رو Copy & Paste کنید و به کارتون ادامه بدید. بیشتر هدفم این بود
که بگم چنین مسائلی رو بهتره با Regular Expression ها حل کنید، تا پیدا کردن علامت @ در یک string...

موفق باشید.

koorosh-soft
سه شنبه 03 اسفند 1389, 22:03 عصر
سلام میشه Syntax پترن Regex.IsMatch رو بگین چه جوریه من سر در نیاوردم
ممنون