View Full Version : سوال: کارکتر های مجاز در تگ html
aliv.2022
سه شنبه 15 مرداد 1392, 11:22 صبح
من میخوام توی textbox بشه عدد و حروف انگلیسی زد یعنی عدد و حروف مجاز باشه اما فقط نشه عدد خالی زد و عدد به تنهایی غیرمجاز باشه
میشه راهنمایی کنید؟
من الان تو تگ input این کد رو گذاشتم:
pattern="[A-Za-z0-9]{4,10}"
که خب عدد و حروف مجاز هستن حتی به تنهایی! میشه با تگ ها درستش کرد یا باید اسکریپت نوشت؟:افسرده:
na_des
سه شنبه 15 مرداد 1392, 14:29 عصر
من میخوام توی textbox بشه عدد و حروف انگلیسی زد یعنی عدد و حروف مجاز باشه اما فقط نشه عدد خالی زد و عدد به تنهایی غیرمجاز باشه
میشه راهنمایی کنید؟
من الان تو تگ input این کد رو گذاشتم:
pattern="[A-Za-z0-9]{4,10}"
که خب عدد و حروف مجاز هستن حتی به تنهایی! میشه با تگ ها درستش کرد یا باید اسکریپت نوشت؟:افسرده:
والا فک نکنم این کار در html مرسوم باشه از regularexpressionvalidator باید استفاده کنید
qartalonline
سه شنبه 15 مرداد 1392, 14:53 عصر
بهتره از کد جاوا اسکریپت استفاده کنید. به شکل زیر:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>validation</title>
<script type="text/javascript">
function validation (){
var filter = /^([a-zA-Z0-9])+$/;
var val = document.getElementById('name').value;
if (val == '') {
alert('error');
return false;
} else if (!filter.test(val)) {
alert('error');
return false;
} else {
var num=0;
for (var i = 0; i < val.length; i++)
if (val.charCodeAt(i) > 47 && val.charCodeAt(i) < 58)
num++;
if (num == val.length) {
alert('error');
return false;
}
}
}
</script>
</head>
<body>
<form action="#" method="post" onSubmit="return validation();">
<input id="name" type="text">
<input type="submit">
</form>
</body>
</html>
tadayoni
سه شنبه 15 مرداد 1392, 17:52 عصر
یه راه ساده این میتونه باشه :
موقع ارسال اطلاعات کافیه چک بکنید که این رشته قابل تبدیل به عدد هست یا نه یعنی is_int
توی این حالت نیازی به regular نداریم
:شیطان::گیج:
aliv.2022
چهارشنبه 16 مرداد 1392, 17:57 عصر
یه راه ساده این میتونه باشه :
موقع ارسال اطلاعات کافیه چک بکنید که این رشته قابل تبدیل به عدد هست یا نه یعنی is_int
توی این حالت نیازی به regular نداریم
:شیطان::گیج:
میشه یکم راجه به is int توضیح بدی؟
aliv.2022
چهارشنبه 16 مرداد 1392, 17:57 عصر
والا فک نکنم این کار در html مرسوم باشه از regularexpressionvalidator باید استفاده کنید
چی هستن ایشون؟:-"
aliv.2022
چهارشنبه 16 مرداد 1392, 18:00 عصر
بهتره از کد جاوا اسکریپت استفاده کنید. به شکل زیر:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>validation</title>
<script type="text/javascript">
function validation (){
var filter = /^([a-zA-Z0-9])+$/;
var val = document.getElementById('name').value;
if (val == '') {
alert('error');
return false;
} else if (!filter.test(val)) {
alert('error');
return false;
} else {
var num=0;
for (var i = 0; i < val.length; i++)
if (val.charCodeAt(i) > 47 && val.charCodeAt(i) < 58)
num++;
if (num == val.length) {
alert('error');
return false;
}
}
}
</script>
</head>
<body>
<form action="#" method="post" onSubmit="return validation();">
<input id="name" type="text">
<input type="submit">
</form>
</body>
</html>
این قسمت از کد رو نمیفهمم
var num=0;
for (var i = 0; i < val.length; i++)
if (val.charCodeAt(i) > 47 && val.charCodeAt(i) < 58)
num++;
if (num == val.length) {
alert('error');
return false;
charCodeAt چکار میکنه؟ و 47 و 58 چیه؟:-/ بعد سوال کلی این که به طول رشته چکار داریم الان ما؟
qartalonline
چهارشنبه 16 مرداد 1392, 18:19 عصر
این قسمت از کد رو نمیفهمم
var num=0;
for (var i = 0; i < val.length; i++)
if (val.charCodeAt(i) > 47 && val.charCodeAt(i) < 58)
num++;
if (num == val.length) {
alert('error');
return false;
charCodeAt چکار میکنه؟ و 47 و 58 چیه؟:-/ بعد سوال کلی این که به طول رشته چکار داریم الان ما؟
charCodeAt کد اسکی کاراکترها رو به ما میده.
47 تا 58 کد اسکی مربوط به اعداد هست.
خوب یه حلقه مینویسیم که داخل input رو بصورت کاراکتر به کاراکتر بخونه.
سپس اگر کد اسکی کاراکتر خوانده شده مابین 47 تا 58 بود یعنی کاراکتر عدد هست و یک واحد به متغیر num اضافه میکنه.
در آخر اگر متغیر num برابر با طول رشته بود یعنی اینکه همه کاراکترهای داخل input عدد هست.
tadayoni
چهارشنبه 16 مرداد 1392, 19:36 عصر
میشه یکم راجه به is int توضیح بدی؟
دوست من is_int یه دستور php هستش که معادل اون توی asp هم موجود هستش . کارش اینه که میتونه تشخیص بده متن وارد شده یک عدد هستش یا حروف و ...
این دستور زمانی بدرد میخوره که شما بخواید سمت سرور کار انجام بدید که البته شما سمت کلایند میخواید انجام بدید
تو html 5 انواع اشیاء اضافه شده
مثلا برای کادری که فقط متن بگیره میشه این کار رو کرد
<input type="number" />
aliv.2022
چهارشنبه 16 مرداد 1392, 19:48 عصر
دوست من is_int یه دستور php هستش که معادل اون توی asp هم موجود هستش . کارش اینه که میتونه تشخیص بده متن وارد شده یک عدد هستش یا حروف و ...
این دستور زمانی بدرد میخوره که شما بخواید سمت سرور کار انجام بدید که البته شما سمت کلایند میخواید انجام بدید
تو html 5 انواع اشیاء اضافه شده
مثلا برای کادری که فقط متن بگیره میشه این کار رو کرد
<input type="number" />
خب من دارم با html کار میکنم php نمیشه استفاده کرد! مرسی به هر حال!
aliv.2022
چهارشنبه 16 مرداد 1392, 19:49 عصر
charCodeAt کد اسکی کاراکترها رو به ما میده.
47 تا 58 کد اسکی مربوط به اعداد هست.
خوب یه حلقه مینویسیم که داخل input رو بصورت کاراکتر به کاراکتر بخونه.
سپس اگر کد اسکی کاراکتر خوانده شده مابین 47 تا 58 بود یعنی کاراکتر عدد هست و یک واحد به متغیر num اضافه میکنه.
در آخر اگر متغیر num برابر با طول رشته بود یعنی اینکه همه کاراکترهای داخل input عدد هست.
ممنون کار جالب بود!:لبخندساده:
ali.poorbazargan
پنج شنبه 17 مرداد 1392, 02:13 صبح
کد ساده تری هم هست از اون بالایی !
function isNumeric(elem, helperMsg){
var alphaExp = /^[0-9]+$/;
if(elem.value.match(alphaExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
این کد element رو میگیره و سپس چک میکنه که عددی هست یا نه اگر عددی بود مقدار true و در غیر این صورت false برمیگرداند .
helpermasg هم میتونه نداشته باشه و فقط از return تابع واسه چک کردن استفاده کنید .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.