आयनिक 4 और कोणीय 8 का उपयोग करते हुए, मैं उपयोगकर्ता इनपुट के हर 4 अंकों में एक स्थान छोड़ने की कोशिश कर रहा हूं, लेकिन यह अचानक टूट जाता है, मुझे लगता है कि यह हर क्रिया है जो मैं एक उपयोगकर्ता के रूप में 4 नंबरों के बाद करता हूं, यह एक स्थान छोड़ देता है।

यह मेरा कार्य है:

maskInput(input){

    let masked:
    Array<String> = input.replace(" ", "").split("");

    let res = "";

    for(let i = 0; i< masked.length; i++) {
    if(i % 4) res += masked[i]

      else res += " " + masked[i]

    }
    return res
  }

इसे (ngModelChange) के माध्यम से आयन-इनपुट में वापस कॉल करें, क्या मुझसे यहां कुछ गलत हो रहा है? क्या यह लूप के लिए हो सकता है?

कोड को बदलकर रिक्त स्थान की समस्या को ठीक किया:

Array<String> = input.replace(" ", "").split(" ").join("").split("");

लेकिन फिर भी यह रिक्त स्थान को इनपुट के रूप में गिनता है।

1
Omar .K 17 सितंबर 2019, 10:37
क्या आप कृपया टेम्पलेट कोड साझा कर सकते हैं?
 – 
Plochie
17 सितंबर 2019, 10:46
मैंने इसे Array = input.replace(" ", "").split(" ").join("").split(""); का उपयोग करके ठीक किया; लेकिन इसमें अभी भी एक समस्या है जहां यह इनपुट के हिस्से के रूप में रिक्त स्थान की गणना करता है और उपयोगकर्ता को पूर्ण कार्ड नंबर डालने की अनुमति नहीं देता है।
 – 
Omar .K
17 सितंबर 2019, 11:13

2 जवाब

मुझे यकीन नहीं है कि आपका प्रश्न क्या है, यदि आपको ऐसे फ़ंक्शन की आवश्यकता है जो प्रत्येक 4 अंकों में रिक्त स्थान जोड़ता है, तो यहां एक है:

const input = "765389764";

function addSpaceEvery4Digit(input) {
  let newInput = "";
  for (let i = 1; i < input.length; i++) {
    newInput += input.charAt(i);
    if ((i % 4 === 0) && i < input.length - 1) {
      newInput += " ";
    }
  }
  return newInput;
}

const res = addSpaceEvery4Digit(input);
console.log(res);

संपादित करें:

आपको अपने कोड में स्ट्रिंग पर ही पुनरावृति करनी चाहिए, न कि स्ट्रिंग की एक सरणी:

परिवर्तन : let masked:Array<String> = input.replace(" ", "").split("");

साथ : let masked:string = input.replace(" ", "");

1
Florian 17 सितंबर 2019, 11:20

समस्या केवल विभाजन के साथ थी, मैंने अपना कार्य इस पर बदल दिया और यह काम कर गया: (विभाजित, शामिल हों, विभाजित करें)

maskInput(input) {

    const masked:
    // tslint:disable-next-line: ban-types
    Array<String> = input.replace(' ', '').split(' ').join('').split('');

    let res = '';

    for (let i = 0; i < masked.length; i++) {
    if (i > 0 && (i) % 4) { res += masked[i]; }

      // tslint:disable-next-line: one-line
      else { res += ' ' + masked[i]; }

    }
    console.log(input);
    return res;
  }
-1
Omar .K 18 सितंबर 2019, 08:46