ايران ويج

نسخه‌ی کامل: اعتبار سنجی فرم ها-جاوا اسکریپت
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
برای فرم های تحت وب نیاز هست که سمت کاربر بعضی مقادیر اعتبار سنجی بشن، مثل : کد ملی، ایمیل، فقط عدد، فقط حروف فارسی، فقط حروف انگلیسی و ....

بعضی از توابعی که خودم برای اعتبار سنجی استفاده کردم و از درست کار کردنشون اطمینان دارم برای دوستان هم معرفی میکنم تا استفاده کنن .

اعتبار سنجی کد ملی
کد php:
function IsValidNationalCode(meli_code) {
    if (
meli_code.length != null && meli_code.length == 10) {
        if (
meli_code == '1111111111' || meli_code == '2222222222' || meli_code == '3333333333' || meli_code == '4444444444' || meli_code == '5555555555' || meli_code == '6666666666' || meli_code == '7777777777' || meli_code == '8888888888' || meli_code == '9999999999') {
            
//alert(11);
            
return false;
 
        } else {
            
parseInt(meli_code.charAt(9));
            
parseInt(meli_code.charAt(0)) * 10 parseInt(meli_code.charAt(1)) * parseInt(meli_code.charAt(2)) * parseInt(meli_code.charAt(3)) * parseInt(meli_code.charAt(4)) * parseInt(meli_code.charAt(5)) * parseInt(meli_code.charAt(6)) * parseInt(meli_code.charAt(7)) * parseInt(meli_code.charAt(8)) * 2;
            
parseInt(11) * 11;
            if ((
== && == c) || (== && == 1) || (&& == 11 r)) {
                
//alert('sahih ast');
                
return true;
            }
            else {
                return 
false;
                
//alert('sahih nist');
            
}
        }
    }

فقط عدد مورد قبول است
کد php:
function isnumeric(evt
{
  var 
theEvent evt || window.event;
  var 
key theEvent.keyCode || theEvent.which;
  
key String.fromCharCodekey );
  var 
regex = /[0-9]|\./;
  if( !
regex.test(key) ) {
    
theEvent.returnValue false;
    if(
theEvent.preventDefaulttheEvent.preventDefault();
  }

و برای تست :
کد php:
<input onkeypress="isnumeric(event)"
تو html5 یک خاصیت اضافه شده به اسم pattern که با استفاده از regex میتونین اعتبار سنجی کنید و برای خالی نبودن المان از خاصت requiredاستفاده کنید

http://www.w3schools.com/tags/att_input_pattern.asp
کد:
<!DOCTYPE html>
<html>
<body>

<form action="demo_form.asp">
  Country code: <input type="text" name="country_code" pattern="\d+" title="فقط عدد وارد کنید">
  <input type="submit">

  Country code: <input type="text" name="country" required="" title="فیلد را پر کنید">
  <input type="submit">
</form>

<p><strong>Note:</strong> The pattern attribute of the input tag is not supported in Internet Explorer 9 and earlier versions, or in Safari.</p>

</body>
</html>
فقط حروف فارسی مورد قبول است
کد php:
function infarsi(evt)
{
    var 
theEvent evt || window.event;
      var 
key theEvent.keyCode || theEvent.which;
      
key String.fromCharCodekey );
      var 
regex = /[^\u0600-\u06FF ]/;
      if( 
regex.test(key) ) 
    {
        
theEvent.returnValue false;
        
alert('فقط حروف فارسی مورد قبول است');
        if(
theEvent.preventDefaulttheEvent.preventDefault();
      }

و برای تست :
کد php:
<input onkeypress="infarsi(event)"
اعتبار سنجی آدرس ایمیل
کد php:
function IsValidMail(mailaddress
{
     var 
regex =  /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; 
    return( 
regex.test(mailaddress) ) ;


و برای تست
کد php:
<input onblur="alert(IsValidMail(this.value))"
فقط حروف انگلیسی
کد php:
function inenglish(evt
{
  var 
theEvent evt || window.event;
  var 
key theEvent.keyCode || theEvent.which;
  
key String.fromCharCodekey );
  var 
regex = /[a-z A-Z]/;
  if( !
regex.test(key) ) {
    
theEvent.returnValue false;
    if(
theEvent.preventDefaulttheEvent.preventDefault();
  }

و برای تست
کد php:
<input onkeypress="inenglish(event)"
بررسی اندازه فایل برای آپلود
کد php:
function validatefile()
{
    var 
maxsize=1024*1024 ;  // 1MB
    
var myinput document.getElementById("fileinput");
    var 
filesize=showFileSize(myinput);
    switch(
filesize)
    {
        case -
: return (true); break;
        case -
2,-3:
            
alert('فایل را انتخاب کنید');
            return (
false)
        break;
        default:
            if(
filesize maxsize)
                {
                
alert ('فایل انتخابی بزرگتر از مقدار مورد قبول است');
                return(
false);
                    
                }
            else    return (
true);
        break;                                                     
    }
}
function 
showFileSize(sender
{
    var 
file;
    if (!
window.FileReader)  return(-1);     //The file API isn't supported on this browser
    
if (!sender) return(-2);                //couldn't find the fileinput element
    
else if (!sender.files) return(-1);     // This browser doesn't seem to support the `files` 
    
else if (!sender.files[0]) return(-3); // select a file 
    
else {file sender.files[0];return(file.size);}


و برای تست:

کد php:
<form action='index.php' onsubmit="return validatefile()">
    <
input type='file' id='fileinput'>
    <
input id='btnLoad' value='Load' type='submit'>
</
form
اعتبار سنجی نوع فایل (بر اساس پسوند فایل)
کد php:
function validatefile2()
{
    var 
extensions = ["jpg""jpeg""png""gif""bmp"];  // Pictures
    
var myinput document.getElementById("fileinput");
    var 
fileext=getFileExt(myinput);
    switch(
fileext)
    {
        case -
: return (true); break;
        case -
2,-3:
            
alert('فایل را انتخاب کنید');
            return (
false)
        break;
        default:
            if(
extensions.indexOf(fileext)<0)
            {
                
alert ('فایل انتخابی قابل قبول نیست');
                return(
false);
            }
            else    return (
true);
        break;                                                     
    }
}
function 
getFileExt(sender
{
    
    if (!
window.FileReader)  return(-1);     //The file API isn't supported on this browser
    
if (!sender) return(-2);                //couldn't find the fileinput element
    
else if (!sender.files) return(-1);     // This browser doesn't seem to support the `files` 
    
else if (!sender.files[0]) return(-3); // select a file 
    
else {
        var 
file,filename,fileext;
        
file sender.files[0];
        
filename=file.name.split(".");
        
fileext=filename[filename.length-1];
        return(
fileext.toLowerCase());
        }

و برای تست :
کد php:
<form action='index.php' onsubmit="return validatefile2()">
    <
input type='file' id='fileinput'>
    <
input id='btnLoad' value='Load' type='submit'>
</
form