अरे मैं एक फाइल से पढ़ी गई लाइन को विभाजित करने की कोशिश कर रहा हूं, फाइल में कई लाइनें हैं जो इस तरह पढ़ती हैं:

username:password\r\n
username:password\r\n
username:password\r\n

और इसलिए मुझे यकीन नहीं है कि उन सभी को एक ही समय में कैसे करें और उन्हें उपयोगकर्ता नाम के लिए 2 अलग-अलग वर्रों में विभाजित करें और पासवर्ड के लिए एक।

-2
Fisheiyy 11 जुलाई 2021, 20:42

3 जवाब

सबसे बढ़िया उत्तर

रेगेक्स और matchAll()< का इस्तेमाल करना /a>, और लौटाए गए इटरेटर को पर पास करना Array.from() और वस्तुओं को वापस करने के लिए बिल्ट इन map() का उपयोग करना। (पासवर्ड में : की अनुमति देने का अतिरिक्त लाभ है)

const input = 'user1:password1\r\nuser2:password2\r\nuser3:password3\r\n';

const result = Array.from(
  input.matchAll(/(.+?):(.+?)\r\n/g),
  ([, username, password]) => ({ username, password })
);

console.log(result);
1
pilchard 11 जुलाई 2021, 18:20

विधि बदलें. का उपयोग करें

const str ='username:password\r\n'
const username = str.split(:)[0];
const password = str.split(:)[1].replace(/[\r\n]+/g, '');

पूर्ण स्ट्रिंग के लिए:

const str =`username:password\r\n
username:password\r\n
username:password\r\n`;

const res = str.split(/[\r\n]/g)
               .filter(l=>l!=="")
               .map(s=>({username:s.split(':')[0], password:s.split(':')[1]}));

console.log(res)
// [{username:'username', password:'password'},...];
0
Oleksandr Yatsiuk 11 जुलाई 2021, 18:04

आप इसे कुंजी/मूल्य जोड़े की एक सरणी में परिवर्तित कर सकते हैं

let lines = `john:123443\r\n
alan:ffg1234\r\n
someone:xxghj!34\r\n`;

let pairs = lines.split("\r\n") // convert into an array
    .map(l => l.split(':') // split on the :
    .map(e => e.replaceAll("\r", "").replaceAll("\n", ""))) // clear out any extra newlines that lingered
    .filter(e => e.join('').trim() != '') // filter out any empties gathered along the way
    .map(grp => ({username: grp[0], password: grp[1]})) // transform the array into key/value pairs

console.log(pairs)
0
Kinglish 11 जुलाई 2021, 17:58