अगर किसी और मामले में वैकल्पिक जावास्क्रिप्ट

0

सवाल

लिए एक विकल्प की तलाश करने के लिए सशर्त बयान. जैसा कि आप से देख सकते हैं अपने कोड, इस प्रक्रिया पीढ़ी दुहराव और बेतरतीब. यह तेजी से मुश्किल हो जाएगा बनाए रखने के लिए कोड के रूप में यह आकार में बढ़ता है. आदेश में से बचने के लिए इस स्थिति में, मैं देख रहा हूँ के लिए विकल्प.

function validate(values) {
  let errors = {};
  //   Email Error
  if (!values.email) {
    errors.email = "Email address is required";
  } else if (!/\S+@\S+\.\S+/.test(values.email)) {
    errors.email = "Email address is invalid";
  }
  //   Password Error
  if (!values.password) {
    errors.password = "Password is required";
  } else if (values.password.length < 6) {
    errors.password = "Password must be 6 or more characters";
  }
  return errors;
}

3

सबसे अच्छा जवाब

1

आप स्थानांतरित कर सकता है कुछ तर्क में विन्यास है । कोशिश मिलाना करने के लिए जाँच करता है कि वे इस तरह के सभी पर निर्भर नियमित अभिव्यक्ति. तो के लिए एक न्यूनतम लंबाई के 6, का उपयोग करें /....../ के रूप में नियमित रूप से अभिव्यक्ति. यह भी सुनिश्चित करें कि नियमित रूप से अभिव्यक्ति को स्वीकार नहीं करेगा एक खाली स्ट्रिंग के मामले में क्षेत्र माना जाता है की आवश्यकता है ।

उदाहरण के लिए:

// All specifics are encoded here:
const checks = [
    { field: "email", regex: /^\S+@\S+\.\S+$/, name: "Email address", msg: "must be 6 or more characters" },
    { field: "password", regex: /....../, name: "Password", msg: "is invalid" },
];

// ...while this is now (more) generic:
function validate(values) {
    const errors = {};
    for (const {field, regex, name, msg} of checks) {
        if (!regex.test(values[field])) {
            errors[field] = name + " " + (values[field] ? msg : "is required");
        }
    }
    return errors;
}
2021-11-24 07:09:42

है कि एक अच्छा दृष्टिकोण है । कोड सरल है करने के लिए अद्यतन और पोषणीय. :D
Sazzad Hossain
0

आप उपयोग कर सकते हैं स्तंभ में एक जे एस वस्तु का उपयोग करके myObject[nameOfYourColumn]

तो हम कर सकते हैं लगता है कि बनाने के लिए एक सामान्य विधि इस तरह

function validateColumn(object, columnName, format, errors) {
  if (!object[columnName]) {
       errors[columnName] = `${columnName} is required`;
  } else if (!format.test(object[columnName])) {
      errors[columnName] = `${columnName} is invalid`;
  }
}

अपने विधि बन जाएगा

function validate(values) {
  let errors = {};
  //   Email Error
  validateColumn(values, 'email', '/\S+@\S+\.\S+/', errors);
  //   Password Error
  validateColumn(values, 'password', '/^.{6,}$/', errors);
  return errors;
}
2021-11-24 07:07:10
0

सही अब, इस समारोह को मान्य किया जाता है दोनों के लिए पासवर्ड और ईमेल.

हालांकि, यह में विभाजित किया जा सकता दो कार्यों के लिए एक मान्य ईमेल, और अन्य के लिए मान्य पासवर्ड. इस में मदद करता है करने के लिए दसगुणा की कार्रवाई मान्य ईमेल से मान्य पासवर्ड, और डिबगिंग/बनाए रखने के आसान है ।

इसके अलावा, आप की कोशिश कर सकते हैं त्रिगुट ऑपरेटरों यदि आप चाहते हैं बनाने के लिए अपने if-else खंड कम बरबाद कर रही है ।

function validate(values) {
    errors = {};
    errors.email = validate_email(values.email) == null
        ? null : validate_email(values.email);

    errors.password = validate_password(values.password) == null 
        ? null : validate_password(values.password);
  
    return errors;
}

function validate_email(email) {
    if (email == null) {
        return "Email address is required";
    } else if (!/\S+@\S+\.\S+/.test(values.email)) {
        return "Email address is invalid";
    } 
    
    return null;
}

//validate_password left as an exercise
2021-11-24 07:07:15

आप की कोशिश कर सकते हैं स्विच मामले के बजाय अगर और
Nilesh

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में