Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> HTML

HTML pattern एट्रिब्यूट: इनपुट वैलिडेशन के लिए रेगुलर एक्सप्रेशन


HTML pattern एट्रिब्यूट एक रेगुलर एक्सप्रेशन (RegExp) निर्दिष्ट करता है जिसका मिलान <input> एलिमेंट के मान से किया जाता है फॉर्म सबमिशन के दौरान। यह कस्टम वैलिडेशन नियमों के लिए शक्तिशाली टूल है जैसे पासवर्ड जटिलता, फोन नंबर प्रारूप, कस्टम आईडी प्रारूप, आदि।

सिंटैक्स (Syntax)

<input pattern="regular_expression">

नोट: पैटर्न पूरी स्ट्रिंग से मेल खाना चाहिए (अंतर्निहित ^...$)। फ्लैग्स (जैसे i, g) समर्थित नहीं हैं।

उदाहरण (Example)

यह उदाहरण न्यूनतम 8 अक्षरों का पासवर्ड मान्य करता है।

<!DOCTYPE html>
<html>
<head>
  <style>
    body {
      color: #000;
      height: 100vh;
      background: linear-gradient(62deg, #FBAB7E 0%, #F7CE68 100%) no-repeat;
      text-align: center;
      font-family: Arial, sans-serif;
    }
    input[type='password'] {
      width: 300px;
      padding: 12px 16px;
      border: 2px solid #fff;
      background: transparent;
      border-radius: 20px;
      display: block;
      margin: 1rem auto;
      outline: none;
      font-size: 1rem;
    }
    input[type='password']:focus {
      border-color: #db133a;
      box-shadow: 0 0 0 3px rgba(219, 19, 58, 0.2);
    }
    .btn {
      background: #db133a;
      border: none;
      height: 2.5rem;
      border-radius: 20px;
      width: 330px;
      display: block;
      color: #fff;
      outline: none;
      cursor: pointer;
      margin: 1rem auto;
      font-size: 1rem;
      transition: background 0.3s;
    }
    .btn:hover {
      background: #b01030;
    }
    ::placeholder {
      color: #666;
    }
    .show {
      font-size: 1.2rem;
      color: #fff;
      margin-top: 1rem;
      min-height: 80px;
    }
    .requirements {
      text-align: left;
      max-width: 330px;
      margin: 1rem auto;
      background: rgba(255,255,255,0.1);
      padding: 1rem;
      border-radius: 10px;
      font-size: 0.9rem;
    }
    .requirements ul { margin: 0.5rem 0; padding-left: 1.5rem; }
    .valid { color: #4ade80; }
    .invalid { color: #f87171; }
  </style>
</head>
<body>
  <h1>HTML pattern एट्रिब्यूट डेमो</h1>
  
  <form action="">
    <div class="requirements">
      <strong>पासवर्ड आवश्यकताएं:</strong>
      <ul>
        <li id="req-length" class="invalid">न्यूनतम 8 अक्षर</li>
        <li id="req-upper" class="invalid">कम से कम 1 बड़ा अक्षर</li>
        <li id="req-lower" class="invalid">कम से कम 1 छोटा अक्षर</li>
        <li id="req-number" class="invalid">कम से कम 1 संख्या</li>
        <li id="req-special" class="invalid">कम से कम 1 विशेष अक्षर (!@#$%^&*)</li>
      </ul>
    </div>
    
    <input type="password" 
           id="passwordInput"
           placeholder="अपना पासवर्ड दर्ज करें" 
           required 
           pattern="(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*]).{8,}">
    <input type="submit" value="सबमिट करें" class="btn">
  </form>
  
  <div class="show" id="statusDisplay"></div>

  <script>
    const passwordInput = document.getElementById('passwordInput');
    const statusDisplay = document.getElementById('statusDisplay');
    
    // रियल-टाइम फीडबैक
    passwordInput.addEventListener('input', function() {
      const value = this.value;
      const checks = {
        length: value.length >= 8,
        upper: /[A-Z]/.test(value),
        lower: /[a-z]/.test(value),
        number: /\d/.test(value),
        special: /[!@#$%^&*]/.test(value)
      };
      
      // आवश्यकताएं अपडेट करें
      Object.keys(checks).forEach(key => {
        const el = document.getElementById('req-' + key);
        if (checks[key]) {
          el.className = 'valid';
          el.innerHTML = '✓ ' + el.textContent.replace(/^[✓✗]\s*/, '');
        } else {
          el.className = 'invalid';
          el.innerHTML = '✗ ' + el.textContent.replace(/^[✓✗]\s*/, '');
        }
      });
      
      // वैलिडिटी स्थिति
      if (this.validity.valid) {
        statusDisplay.innerHTML = '<p style="color: #4ade80;">✓ पासवर्ड सभी आवश्यकताओं को पूरा करता है।</p>';
      } else if (value.length > 0) {
        statusDisplay.innerHTML = '<p style="color: #fbbf24;">⚠ पासवर्ड आवश्यकताओं को पूरा नहीं करता।</p>';
      } else {
        statusDisplay.innerHTML = '';
      }
    });
    
    // फॉर्म सबमिशन
    document.querySelector('form').addEventListener('submit', function(e) {
      e.preventDefault();
      if (passwordInput.validity.valid) {
        statusDisplay.innerHTML = '<p style="color: #4ade80; font-size: 1.5rem;">✓ फॉर्म सफलतापूर्वक सबमिट हुआ!</p>';
      } else {
        passwordInput.reportValidity();
      }
    });
  </script>
</body>
</html>

आउटपुट (Output)

पासवर्ड फील्ड में टाइप करते समय रियल-टाइम फीडबैक:

HTML pattern एट्रिब्यूट: इनपुट वैलिडेशन के लिए रेगुलर एक्सप्रेशन

8 अक्षरों से कम पासवर्ड सबमिट करने पर ब्राउज़र चेतावनी:

HTML pattern एट्रिब्यूट: इनपुट वैलिडेशन के लिए रेगुलर एक्सप्रेशन

वैध पासवर्ड के साथ सफल सबमिशन:

HTML pattern एट्रिब्यूट: इनपुट वैलिडेशन के लिए रेगुलर एक्सप्रेशन

सामान्य पैटर्न उदाहरण

उपयोग मामला पैटर्न विवरण
केवल अक्षर (कोई संख्या/विशेष नहीं) ^[A-Za-z]+$ केवल अंग्रेजी अक्षर
उपयोगकर्ता नाम (अल्फान्यूमेरिक + अंडरस्कोर) ^[a-zA-Z0-9_]{3,20}$ 3-20 अक्षर, अक्षर/संख्या/_
भारतीय मोबाइल नंबर ^[6-9]\d{9}$ 10 अंक, 6-9 से शुरू
पिन कोड (भारत) ^\d{6}$ सटीक 6 अंक
ईमेल (बुनियादी) ^[^@\s]+@[^@\s]+\.[^@\s]+$ बुनियादी ईमेल प्रारूप
मजबूत पासवर्ड ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*]).{8,}$ 8+ अक्षर, ऊपरी/निचला/संख्या/विशेष
हेक्स रंग कोड ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ #RRGGBB या #RGB
ISBN-13 ^\d{13}$ 13 अंक

महत्वपूर्ण नोट्स

  • title एट्रिब्यूट: कस्टम त्रुटि संदेश के लिए title="आपका संदेश" जोड़ें (कुछ ब्राउज़र दिखाते हैं)।
  • केस सेंसिटिव: पैटर्न केस-सेंसिटिव होते हैं। केस-इनसेंसिटिव के लिए (?i) उपयोग करें (सभी ब्राउज़र समर्थन नहीं करते)।
  • JavaScript RegExp अंतर: HTML pattern जावास्क्रिप्ट RegExp जैसा ही है लेकिन फ्लैग्स के बिना।
  • सुरक्षा: क्लाइंट-साइड वैलिडेशन सुविधा के लिए है; हमेशा सर्वर-साइड भी मान्य करें।
  • पहुंचयोग्यता: स्क्रीन रीडर के लिए aria-describedby के साथ सहायक पाठ जोड़ें।

ब्राउज़र समर्थन

सभी आधुनिक ब्राउज़र (Chrome 5+, Firefox 4+, Safari 10.1+, Edge 12+, IE 10+, Opera 11+)。


  1. HTML pattern एट्रिब्यूट: इनपुट वैलिडेशन के लिए रेगुलर एक्सप्रेशन HTML pattern एट्रिब्यूट: इनपुट वैलिडेशन के लिए रेगुलर एक्सप्रेशन

    HTML pattern एट्रिब्यूट एक रेगुलर एक्सप्रेशन (RegExp) निर्दिष्ट करता है जिसका मिलान <input> एलिमेंट के मान से किया जाता है फॉर्म सबमिशन के दौरान। यह कस्टम वैलिडेशन नियमों के लिए शक्तिशाली टूल है जैसे पासवर्ड जटिलता, फोन नंबर प्रारूप, कस्टम आईडी प्रारूप, आदि। सिंटैक्स (Syntax) <input patte

  1. HTML wrap एट्रिब्यूट HTML wrap एट्रिब्यूट

    विवरण HTML wrap एट्रिब्यूट परिभाषित करता है कि फॉर्म सबमिट होने पर टेक्स्ट एरिया में टेक्स्ट कैसे रैप किया जाएगा। सिंटैक्स <textarea wrap=hard | soft></textarea> उदाहरण आइए HTML wrap एट्रिब्यूट का एक उदाहरण देखें: <!DOCTYPE html> <html> <style> body { color:

  1. HTML draggable एट्रिब्यूट HTML draggable एट्रिब्यूट

    HTML draggable एट्रिब्यूट HTML DOM draggable एट्रिब्यूट एक बूलियन मान लौटाती/सेट करती है जो निर्दिष्ट करती है कि कोई एलिमेंट ड्रैगेबल है या नहीं। नोट: लिंक्स और इमेजेस डिफ़ॉल्ट रूप से ड्रैगेबल होते हैं। उदाहरण आइए HTML draggable एट्रिब्यूट का एक उदाहरण देखें: <!DOCTYPE html> <html> &