###実現したいこと
正規表現について知りたいです。宜しくお願い致します。
このようなvalueがあります。
<input type="textarea" value="[いぬ[の] しっぽ] [ねこのしっぽ]いぬ ねこ ">
ここから、下記➀➁の配列を取得することは可能でしょうか?
###取得したい配列
➀「一番外側の括弧」という単位で配列
Array [ "いぬ[の] しっぽ", "ねこのしっぽ" ]
➁それ以外の文字列でスペース単位の配列
Array [ "いぬ", "ねこ" ]
###注意したい点
・括弧の入れ子の数は不明です。
・括弧は必ずセットになります。(たとえば[いぬ[の]] しっぽ]
のように括弧がセットにならないということはありません。)
###試したこと
なんとなく大枠の流れはできたのですが、やはり正規表現の部分で躓いています。
下記ですと「一番外側の括弧」ではなく「括弧が出現するたびに」という感じになってしまいます。
どうすればいいか教えて頂けませんでしょうか。
<input type="textarea" value="[いぬ[の] しっぽ] [ねこのしっぽ]いぬ ねこ "> $('input').on('input', function() { // 入力値を取得 const inputVal = $(this).val(); // ➀「一番外側の括弧」という単位で配列 const range = /[([^[] ]+)/g; // ここで「一番外側の括弧」という指定がしたい let match; let rangeArr = []; while ( (match = range.exec(inputVal))!== null ) { rangeArr.push(match[1]); } console.log( 'rangeArr' ); console.log( rangeArr ); // ➁それ以外の文字列でスペース単位の配列 const spaceArr = inputVal.replace(range,'').split(/[\u3000&\x20;]/g); console.log( 'spaceArr' ); console.log( spaceArr ); });
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/17 03:14