Не уверен, хотите ли вы «Сингапур» или просто коды, поэтому я сделал оба:
const text = `Great World
1 Kim Seng Promenade, Great World, #01-138, Singapore 237994
(Nearest Drop Off at Office Lobby)
+65 6737 1366
Jem
50 Jurong Gateway Road #02-07 Singapore 608549
+65 6694 1161
Jewel Changi Airport
80 Airport Boulevard, Jewel Changi Airport,
#03-214, Singapore 819666
+65 6241 3353
Junction 8 Shopping Centre
9 Bishan Place #01-41 Singapore 579837
+65 6356 5228
Jurong Point Shopping Centre
63 Jurong West Central 3 #B1-68
Singapore 648331
+65 6861 1811`
var extractPostalRegex = /\s\s\b\d{6}\b|Singapore\s+\d{6}/g
var postal = text.match(extractPostalRegex);
console.log(`Singapore and codes:\n`,postal);
const postalCodes = postal.reduce((codes,matchedString) => {
let codeMatch = matchedString.match(/\d{6}/);
if(codeMatch){
codes.push(codeMatch[0]);
}
return codes;
},[]);
console.log(`ONLY codes`,postalCodes);
Первое регулярное выражение, которое я использовал, было именно тем, которое вы использовали, но в конце я добавил флаг 'g'. Это означает «глобальный», поддерживаемый javascript, который возвращает все совпадения из данной строки, а не только первое совпадение с использованием жадного подход, который javascript использует по умолчанию.