واضح آرشیو وب فارسی:سایت ریسک: تشخیص کاراکتر فارسی از داخل یک رشته desiran 27 دي 1385, 16:41چه طوری میشه کاراکتر های فارسی رو از دیگه (انگلیسی) از داخل یک رشته String تشخیص داد . با ASP کلاسیک m1pfard 28 دي 1385, 07:11به نظر من باید تک تک کاراکترها رو مقایسه کنی. یعنی یه حلقه برای مقایسه تک تک کاراکترها با کدهای حروف فارسی. desiran 29 دي 1385, 11:07خوب آره ولی همون که یک کراکتر رو هم تشخیص داد هم مشکل دارم mosyhey 29 دي 1385, 19:18باید بشود چون من قبلاً این کار را کرده بودم. فرض کنید شما صفحه را یونیکد تعریف می کنید و همچنین ورودی های کاربران را. حالا هر حرف فارسی یک کد دارد که با مقایسه تک تک حروف وارد شده توسط کاربر با این کد ها می توانید بفهمید چه حرفی است و یا اینکه فارسی است یا نه؟ اول لیست کد حروف را از این صفحه ببینید: حالا مثلا اگر شرط زیر true شد می فهمیم کاربر حرف "ج" را وارد کرده است با این فرض که حرفی را که می خواهیم بسنجیم در متغیر harf ریخته ایم: If harf=chrw(1580) Then البته اگر صفحه کدتان را هم به صورت یونیکد بسازید این گونه هم می توانید بنویسید که: If harf="ج" Then من از روش اول استفاده کرده ام و کاملاً جواب گرفته ام. desiran 30 دي 1385, 16:58ممنون ولی راه ساده تری نیست برای اینکه بشه فهمید که یک کاراکتر (که خاص نباشه یعنی نمی دونیم چی هست ) فقط فارسی هست یا نه یعنی دیگه از حلقه استفاده نکنم و یا اینکه کراکترهای فارسی از چه عددی تا چه عددی هستن. mazoolagh 03 بهمن 1385, 19:58بهترين راه استفاده از regular expressions هست. در asp هم با vbs و هم با js ميتونين استفاده كنين. desiran 03 بهمن 1385, 21:06بیشتر توضیح می دی mazoolagh 04 بهمن 1385, 22:13اين REGULAR EXPRESSION خيلي در برنامه نويسي مهم هست و تقريبا" همه جا استفاده ميشه ASP-ASPX-PHP-PERL و ... براي آشنايي بيشتر ميتونين به رفرنس همون زباني كه باهاش كار ميكنين رجوع كنين. من براي مسئله شما يك كد نمونه ميگذارم كه بيشتر متوجه قدرت و سودمندي اين تكنيك بشين: <html dir="rtl"> <head> <meta "Content-Type" content="text/html; charset=utf-8"> </head> <body> <% DIM REGEXP SENTENCE = "اين يك تست است this is a test" Set REGEXP = New REGEXP REGEXP.PATTERN = "(ا|ب|ج|د|a|b|c|d|e)" REGEXP.GLOBAL = TRUE SET FOUND = REGEXP.EXECUTE(SENTENCE) RESPONSE.WRITE ("عبارت : " & SENTENCE & "<br>") RESPONSE.WRITE (" پترن : " & REGEXP.PATTERN & "<br>") RESPONSE.WRITE (FOUND.COUNT & " مورد پيدا شد" & "<br>") FOR EACH MATCH in FOUND RESPONSE.WRITE ("{" & MATCH.VALUE & "}" & " در محل " & MATCH.FIRSTINDEX+1 & "<br>") NEXT %> </body> </html> از بابت توضيح اينكه در PATTERN حروفي رو كه برامون اهميت داره با "|" جدا كرديم كه بمعناي OR هست. نتايج در يك ARRAY برميگرده كه بالطبع براي كار شما همين كه طول اون صفر باشه كافي هست ولي يك حلقه اضافي بعدش گذاشتم كه نشون بدم چه شكلي ميتونين از نتايج استفاده كنين. m1pfard 05 بهمن 1385, 10:43تشکر desiran 05 بهمن 1385, 11:04ممنون
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 3653]