簡體   English   中英

如何從字符串中刪除 \\r\\n :

[英]How to remove \r\n from string at :

嘿,我試圖拆分從文件中讀取的一行,該文件包含幾行,讀起來像

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

等等,我不知道如何同時完成它們並將它們分成 2 個不同的變量,一個用於用戶名,另一個用於密碼。

使用正則表達式和matchAll() ,並將返回的迭代器傳遞給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);

請嘗試以下代碼。

 var mainStr = "username:password\\r\\nusername:password\\r\\nusername:password\\r\\n"; var usernameArr = []; var passwordArr = []; mainStr.split("\\r\\n").forEach(str => { var strArr = str.split(":"); strArr[0] && usernameArr.push(strArr[0]); strArr[1] && passwordArr.push(strArr[1]); }); console.log("Username ", usernameArr); console.log("Password ", passwordArr);

使用 .replace 方法

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'},...];

您可以將其轉換為鍵/值對數組

 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM