[英]How to loop a string an array in string
const names = 'const names = ["jhon", "anna", "kelvin"]'
如何獲取名稱數組,以便我可以循環遍歷它
例如 names.forEach(name => console.log(name))
// 預期結果 jhon, anna, kelvin
您可以在此處使用match()
來隔離數組,然后使用split()
來獲取名稱列表。
var names = 'const names = ["jhon", "anna", "kelvin"]'; var vals = names.match(/\["(.*?)"\]/)[1].split(/",\s*"/).forEach(name => console.log(name));
eval('const names = ["jhon", "anna", "kelvin"]');
for(let name : names)
console.log(name);
你可以試試這個:
let testCase1 = 'const names = ["jhon", "anna", "kelvin"]'; let testCase2 = 'var names = ["cane", "anna", "abel", 1, {}, []]'; let testCase3 = 'var names = ["cane" "anna", "abel", 1, {}, []]'; function getArrayLikeInsideText(text) { const regex = new RegExp(/\[.*\]/, 'g'); const temp = text.match(regex); let arr; try { arr = JSON.parse(temp); } catch { return undefined; } const gotAnArray = Array.isArray(arr); return gotAnArray? arr: undefined; } console.log(getArrayLikeInsideText(testCase1)); // ["jhon", "anna", "kelvin"] console.log(getArrayLikeInsideText(testCase2)); // ["cane", "anna", "abel", 1, {}, []] console.log(getArrayLikeInsideText(testCase3)); // undefined
您可以在String.match()
方法的幫助下使用RegEx
來簡單地實現這一點。
現場演示:
const names = 'const names = ["jhon", "anna", "kelvin"]'; const a = names.match(/\[.*\]/g)[0]; JSON.parse(a).forEach(name => console.log(name));
\[.*\]
- 包括開/關括號以及內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.