簡體   English   中英

regexp查找引號之間的所有值

[英]regexp find all values between quotation marks

我想將所有引號內的字符串值推入數組。

Database = {
  "English": "forget password",
  "zh-CN": "忘記密碼",
}

輸出應該是

extractedStrings = ["English", "forget password", "zh-CN", "忘記密碼"]

如下使用Object.entriesArray.prototype.concat

var extractedStrings = [].concat(...Object.entries(Database));

對於Internet Exploder和Opera,您將需要一個Polyfill用於Object.entries

我猜您應該遍歷對象的鍵並將鍵和值推入數組。 比使用Object.entries和傳播語法更具兼容性。

 var database = { "English": "forget password", "zh-CN": "忘記密碼", } var keyValues = Object.keys(database).reduce(function(acc, key) { acc.push(key, database[key]); return acc; }, []) console.log(keyValues) 

您還可以執行正則表達式版本以匹配不屬於JSON語法的任何字符。 以下是一個比較幼稚的實現,我認為以上更好:

 var database = { "English": "forget password", "zh-CN": "忘記密碼", } console.log(JSON.stringify(database).match(/[^\\":{},]+/g)) 

 var obj = { "English": "forget password", "zh-CN": "忘記密碼",}; var arr=[]; for(var p in obj){ arr.push(p); arr.push(obj[p]); } console.info(arr); 

你可以試試看。

 Database = { "English": "forget password", "zh-CN": "忘記密碼", "other-language": "embedded \\"quotes\\"" } a = JSON.stringify(Database); words = a.match(/"(.*?)"/g); console.log(words); 

暫無
暫無

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

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