• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

درخواست الگو

sasan_66

کاربر تازه وارد
تاریخ عضویت
18 جولای 2006
نوشته‌ها
450
لایک‌ها
0
سلام
عبارت باقاعده براي اينكه بگيم فيلد هاي زير دقيقا با مشخصات زير پر شده باشه چيه؟
1- يه فيلدي كه تنها از حروف الفبايي فارسي به همراه اسپيس تشكيل شده( حداكثرم 20 كاراكتر باشه )
2- يه فيلدي كه فقط شامل عدد باشه( از 1 رقم تا 10 رقم مي تونه متغيير باشه)
3- يه فيلدي كه دقيقا شامل 10 رقم باشه( توش نه الفبا نه اسپيس و نه چيزهاي ديگه باشه)
با تشكر
 

متالیک

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
31 مارس 2007
نوشته‌ها
2,133
لایک‌ها
286
سلام
یه کاربری بود قدیما از این الگوها بلد بود بنویسه خیلی هم وارد بوده نام کاربریش اگه اشتباه نکنم firebird بود از ایشون بپرسید.
این الگو نویسی رو آخر یاد نگرفتیم.
 

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
سلام
عبارت باقاعده براي اينكه بگيم فيلد هاي زير دقيقا با مشخصات زير پر شده باشه چيه؟
1- يه فيلدي كه تنها از حروف الفبايي فارسي به همراه اسپيس تشكيل شده( حداكثرم 20 كاراكتر باشه )
2- يه فيلدي كه فقط شامل عدد باشه( از 1 رقم تا 10 رقم مي تونه متغيير باشه)
3- يه فيلدي كه دقيقا شامل 10 رقم باشه( توش نه الفبا نه اسپيس و نه چيزهاي ديگه باشه)
با تشكر
بیا من یه چیزی نوشتم تا حدی میاد دستت باید چیکار کنی

PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>

<?php


function checkFARSIchars($i) 
{ 
	if(eregi('^[ابچتسجچحخدذرزعقفلکمنهی]*$',$i)) 
	{ 
		return true; 
	} 
	else 
	{ 
		return false; 
	}
}

function checkNUMBERSchars($i) 
{ 
	if(eregi('^[0-9]*$',$i)) 
	{ 
		return true; 
	} 
	else 
	{ 
		return false; 
	}
} 

function checkENGLISHchars($i) 
{ 
	if(eregi('^[a-zA-Z]*$',$i)) 
	{ 
		return true; 
	} 
	else 
	{ 
		return false; 
	}
} 



$result1 = '';
$result2 = '';
$result3 = '';
if($_POST[checks])
{
	if($_POST[string_a])
	{
		if(checkFARSIchars($_POST[string_a]))
		{
			$result1='درست';
		}
		else
		{
			$result1='غلط';
		}
	}
	
	if($_POST[string_b])
	{
		if(checkNUMBERSchars($_POST[string_b]))
		{
			$result2='درست';
		}
		else
		{
			$result2='غلط';
		}
	}
	
	if($_POST[string_c])
	{
		if(checkENGLISHchars($_POST[string_c]))
		{
			$result3='درست';
		}
		else
		{
			$result3='غلط';
		}
	}
}
?>

<form action="" method="post">
	<input type="text" value="" name="string_a"> تنها از حروف الفبايي فارسي به همراه اسپيس<br>
    <span style="color:#FF0000"><?=$result1?></span><br><br>

    <input type="text" value="" name="string_b"> فقط شامل عدد باشه<br>
    <span style="color:#FF0000"><?=$result2?></span><br><br>
    
    <input type="text" value="" name="string_c"> فقط شامیل حروف انگلیسی باشه<br>
    <span style="color:#FF0000"><?=$result3?></span><br><br>
    
    <input type="submit" name="checks" value="CHECK">
</form>

</body>
</html>
 

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
برای اینکه مثلا بگی از a انگلیسی تا z انگلیسی مینویسی:

PHP:
a-z

برای A تا Z بزرگ مینویسی:
PHP:
A-Z
برای هم بزرگ هم کوچیک:

PHP:
a-zA-Z

حالا مثلا میخوای آندرلاین _ هم اضافه کنی اینطوری میشه:

PHP:
a-zA-Z_

برای حروف فارسی هم الفبای فارسی رو پشت سر هم بنویس:
PHP:
ابپتسجچهخدزرضلبغتسابلسص

من الفبا رو یادم نیست خدت درست بنویس!

هواست باشه نقطه (.) نذاری! چون نقطه ینی هر کاراکتری...
 

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
سلام
یه کاربری بود قدیما از این الگوها بلد بود بنویسه خیلی هم وارد بوده نام کاربریش اگه اشتباه نکنم firebird بود از ایشون بپرسید.
این الگو نویسی رو آخر یاد نگرفتیم.
وقت خوندن کتاب جدید اگه داری, این کتابو سرچ بزن روی رپیدشر یا تورنت دانلودش کن! همه چیو کامل توضیح داده...

کد:
Mastering Regular Expressions, 3rd Edition 
By Jeffrey E. F. Friedl 
............................................... 
Publisher: O'Reilly 
Pub Date: August 2006 
Print ISBN-10: 0-596-52812-4 
Print ISBN-13: 978-0-59-652812-6 
Pages: 542
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
47
برای عبارت اول که خواستی چنین چیزی میشه:
کد:
^[\s\u0621-\u064A\u200C\u200D]+$
البته نمیدونم کاراییش چقدر هست چون امتحانش نکردم. یک روش هم همونه که دوستان گفتند لیست حروف رو بنویسی.

برای عبارتهای دوم و سوم
کد:
^\d{1,10}$
^\d{10}$

pdf فارسی که ضمیمه کردم مقدمات هست.
 

فایل های ضمیمه

  • regex.pdf
    788.9 KB · نمایش ها: 66

متالیک

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
31 مارس 2007
نوشته‌ها
2,133
لایک‌ها
286
تشکر از همگی
فعلا دانلود کنم ولی دقت ندارم سر فرصت بخونم شاید یه چیزهایی یاد گرفتیم
 

sasan_66

کاربر تازه وارد
تاریخ عضویت
18 جولای 2006
نوشته‌ها
450
لایک‌ها
0
دوستان از همگی بابت کمکتون ممنون
فقط یه مشکل این قسمت فارسی کار نمیکنه! چه حروف رو پشت سر هم بنویسم چه با کد بنویسم
 
Last edited:

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
47
راستی firebird این کد های حروف فارسی رو رو از کجا می تونم پیدا کنم؟ چون وقتی حروف رو پشت سر هم می نویسم کار نمی کنه گفتم شاید اگه کد بنویسم کار کنه
من چون با حروف فارسی تا به حال به این شکل کار نکردم نمیتونم نظر دقیقی بدم ولی برای لیست حروف میتونی از این فایل استفاده کنی: http://switch.dl.sourceforge.net/sourceforge/farsitools/finalversion.pdf
 
بالا