2017-04-20 7 views
0

引用符で囲まれた文字列のすべての値を配列にプッシュしたい。regexp引用符で囲まれたすべての値を見つける

Database = { 
    "English": "forget password", 
    "zh-CN": "忘记密码", 
} 

出力は、インターネット発破とオペラのために

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

を次のように、あなたは私はあなたを推測Object.entries

+1

ここで問題はありますか?そうであれば、あなたが試みたことを示すことができます。 –

+0

私はqoutationマーク内のすべての一致を見つけるために正規表現のコードを要求したい...申し訳ありません私は手掛かりを持っていません.. –

+0

彼らはすべてそれらが一致しない...?私はそれを決定するために正規表現が必要であるかどうかはわかりません。 –

答えて

4

使用Object.entriesArray.prototype.concatする必要がありますオブジェクトのkをループする必要がありますキーと値を配列にプッシュします。 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))

+0

[Polyfill](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries#Polyfill)がないIEまたはOperaではサポートされていません –

+0

見つかる正規表現はありますかqoutesの中のすべての値? –

+0

これは** Object **です - JSON.stringifyを使用し、string.replaceを賢明に使用することもできますが、これは正規表現で ' - 'を持つ文字列値に応じて、あなたの文字列が決して ':'を持たないことが保証されている場合、JSON.stringifyは大量の置換えで動作します –

1

ためPolyfillが必要になります

extractedStrings = ["English", "forget password", "zh-CN", "忘记密码"] 
+0

最後の部分を取り除いた場合、これは良い回答になります。 –

+1

@ torazaburo-yepだが、OPは鋭いようだ。 : -/ – RobG

1

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

+0

あなたは本当に* for..in *と一緒に* hasOwnProperty *テストを使うべきです。 – RobG

0

Database = { 
 
    "English": "forget password", 
 
    "zh-CN": "忘记密码", 
 
    "other-language": "embedded \"quotes\"" 
 
} 
 

 

 
a = JSON.stringify(Database); 
 
words = a.match(/"(.*?)"/g); 
 

 
console.log(words);

+0

nice !!! '' Englidh ''などで終わります。つまり、引用符は結果の文字列の一部です。 –

+0

これは' Database = {"English": "password" "}}'のような入力で実行してみてください。 –

関連する問題