フォームからjsonを送信できるようにするためのフォームを作成しようとしています。異なるタイプの文字列の配列へのJs配列
私の入力の一つは、私は、ユーザーがフォームから単一のフィールドに配列を渡すと問題を抱えているフォーム["1","2","3"]
または["foo","bar"]
の配列でなければなりません。
私は、ユーザーが入力(HTML)[1,2,3]
のことができるように、それは[「foo」という、「バー」]に変換する["1","2","3"]
または[foo,bar]
に変換されていてもらいたいです。
json.Stringifyは明らかにそのような場合には機能しません。
私はこれをやっているのが難しいです。私は、入力フィールドが配列か文字列か数字かを事前に知っていません。
私は現在自分のコントローラのオブジェクトに自分のフォームのコンテンツを格納していますが、明らかに[1,2,3]を入力すると "[1,2,3]"が得られ、["1","2","3"]
のデータが渡されると私は得る[\"1\",\"2\",\"3\"]
自動的にそれを行うためのツール/機能はありますか?
注:- 1フィールドの入力は配列になる必要があります。配列の型やアイテムの数は事前にわかりません。 - 私は角度を使用していますが、それは私が信じるjsの問題の多くです。ユーザーは、必要に応じて引用符を入力することができ
function cast(s) {
if (s.match(/^\s*\[.*\]\s*$/)) { // array notation
return s.trim().replace(/^\[|\]$/g, '').split(',').map(cast);
}
// remove wrapping quotes if present
return s.trim().replace(/^'(.*)'$|^"(.*)"$/g, '$1$2');
}
// I/O for demo
document.querySelector('input').addEventListener('input', function() {
var s = cast(this.value);
document.querySelector('span').textContent = JSON.stringify(s);
});
Your input: <input><br>
Output JSON: <span></span>
注:
引用符で得られた文字列配列を出力し、その後、カンマで文字列を分割し、その後、文字列が始まると、ブラケットで終わるかどうかを検出するような単純なようです。 – mattsven
そのようなものを試してみよう – EwoG