ورود

View Full Version : شناسایی کاراکترهای غیرمجاز در یک رشته



cemohsen
چهارشنبه 12 دی 1386, 13:55 عصر
با سلام
من به یک تابع احتیاج دارم که 2 رشته رو بگیره و حتی اگه یکی از کاراکترهای رشته دوم در رشته اول موجود باشه مقدار 0 برگردونه و در غیر اینصورت مقدار 1 رو برگردونه

من این تابع رو با زبانهای دیگه مثل C و پاسکال و ... می تونم بنویسم ، اما مشکلم اینه که JavaScript بلد نیستم و این تابع رو برای صفحه وب احتیاج دارم

دنبال این تابع تو اینترنت و همین Forum هم گشتم ، اما پیدا نکردم
ممنون می شم اگه دوستان لطف کنن و این تابع رو به من معرفی کنن

با تشکر

Poorang
چهارشنبه 12 دی 1386, 17:01 عصر
دوست عزیز شاید این چیزی که مینویسم بدردت بخوره (امیدوارم)



<head>
<title>Untitled Page</title>
<scriptlanguage="javascript"type="text/javascript">
function Searching(Text1, Text2)
{
ToBeOrNotToBe = (Text1.search(Text2) < 0) ? "No" : "Yes";
alert(ToBeOrNotToBe);
}
</script>
</head>
<body>
<scriptlanguage="javascript"type="text/javascript">
a = prompt("Text 1", "");
b = prompt("Text 2", "");
Searching(a,b);
</script>
</body>
</html>


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

cemohsen
چهارشنبه 12 دی 1386, 21:32 عصر
با تشکر از Poorang به خاطر زحمتی که کشیدی
دوست عزیز این تابع که شما نوشتی وجود کل رشته دوم در رشته اول رو بررسی می کنه و نه قسمتی از اون رو . برای مثال اگه رشته اولمون string1 باشه و رشته دوم string2 این تابع مقدار NO رو بر می گردونه
اما من می خوام اگه حتی یکی از کاراکترهای رشته دوم تو رشته اول باشه ، مقدار True برگردونه .

موارد استفاده :
فرض کنید می خواهیم یک فرم ثبت نام بنویسیم و نمی خواهیم کاراکتر های {./\":][,!@#$%^و...} جزو نام کاربری باشه . حالا به یه تابع احتیاج داریم که در صورت وجود هر کدوم از این کاراکتر ها به کاربر اطلاع بده .
و یک راه دیگه اینه که موقع ورود کاراکتر ها هر کاراکتر رو بررسی کنیم و اگه غیر مجاز بود همون موقع هشدار بدیم (که این تابع رو هم ندارم)


با تشکر

Poorang
پنج شنبه 13 دی 1386, 03:46 صبح
برای مثالی که زدی باید از Validator استفاده کنی.
در حال فکر کنم این مشکلت رو حل کنه :


<html>
<head>
<title></title>
<scriptlanguage="javascript"type="text/javascript">
function Searching(Text1, Text2)
{
for (i=0; i<Text2.length; i++)
{
if (Text1.indexOf(Text2.charAt(i)) < 0)
{
ToBeOrNotToBe = "No";
}
else
{
ToBeOrNotToBe = "Yes";
break;
}
}
alert(ToBeOrNotToBe);
}
</script>
</head>
<body>
<scriptlanguage="javascript"type="text/javascript">
a = prompt("Text1", "");
b = prompt("Text2", "");
Searching(a,b);
</script>
</body>
</html>

cemohsen
پنج شنبه 13 دی 1386, 15:49 عصر
با سلام
کدی که شما گذاشتی به خوبی کار می کنه و هیچ مشکلی هم نداره
خیلی ممنونم
خودم هم یک تابه VB گیر آوردم که رشته رو می گیره و اگه مجاز باشه مقدار True رو برمی گردونه و با یک کم دستکاریش میشه دقیقا به همون چیزی که می خواییم برسیم

از زحمتتون ممنون


<%
function Validation(text)
'************************************************* ************
'Checks To see if text is made up of only Alphabetic characters (A-Z)
'or Numbers. if it has any other characters, Validation will be False.
'************************************************* ************
Dim StrLen, Counter, Str, SingleChar
Dim Valid

'************************************************* ***********
'Default value
'************************************************* ***********
Valid = True

'************************************************* ***********
'Gets length of the text variable.
'************************************************* ***********
Str = Trim(text)
StrLen = Len(Str)

Str=Ucase(Str)
'************************************************* ************
'If the length of text is 0, Then it is Not AlphaNumeric and
'Validation = False.
'************************************************* ***********
if StrLen = 0 Then
Valid = False
End if
if StrLen > 0 Then
'************************************************* *******************
'Will Counter StrLen times. It will check Each of the characters of text
'against the comparison String (which is A-Z and 1-0). It will check it one
'character at a time (beginning With the farthest left character).If the
'Instr command shows a 0 (meaning it could Not find a match), that
'character was Not AlphaNumeric.
'************************************************* *******************
For Counter =1 To StrLen
SingleChar = Mid(Str,Counter,1)
if Instr("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", SingleChar)= 0 Then
Valid = False
Exit For
End if
Next
'************************************************* *************
'If text managed To Get through the above filters without changing
'Validation To False, Then Validation is True.
'************************************************* ************
if Valid <> False Then
Valid = True
End if
End if

Validation = Valid

End function
%>