
URLクエリに日付フィールドの検索条件を渡すjavascriptをカスタマイズしているのですが、
「like」or「<=」or「>=」で文字を分割し、配列に格納する部分で、splitの正規表現の書き方を以下のようにしているのですが上手くいってないようです。
for( var i = 0; i < parameters.length; i++ ){
var k = /like|<=|>=/; //分割するキー
var element = parameters[ i ].split(k);
var paramName = decodeURIComponent( element[ 0 ] );
var paramValue = decodeURIComponent( element[ 1 ] );
// スペースと""をtrimして、文字列だけにしてから、配列に格納
result[ paramName.replace(/^\s+|\s+$/g, "") ] = paramValue.replace(/^[\s|\"]+|[\s|\"]+$/g, "");
}
どのようにしたら正しく分割されますでしょうか?
No.4ベストアンサー
- 回答日時:
こんにちは
>var k = /like|<=|>=/;
は、正規表現リテラルとなるはずなので、ご提示の記述で問題は無いと思います。(文字列ではない)
具体的にどのような内容を解釈しようとするとうまくいかないのでしょうか?
ご提示のスクリプトから勝手に想像すると・・・
得られた{ key, value }値で、valueがundefinedなどになっているものがあるかも。
元のparametersが指定のセパレータを含んでいない場合は、element[ 1 ]は未定義になりますが、スクリプトではそのまま使っているので・・・
あるいは、元のparametersが複数のセパレータを含んでいる可能性はないのでしょうか?
この場合は全て分割されるので、仮にelement[ 2 ]以降が存在したとしても無視されることになります。
正規表現が間違っていると思い込んでいたのですが、ご指摘の通り「元のparametersが複数のセパレータを含んでいる」原因はこれでした!
問題解決の糸口を作っていただきありがとうございました。
No.3
- 回答日時:
>No.2 回答者: amanojaku6
>element = test.split(/like|<=|>=/);
「test.split("/like|<=|>=/")」のように文字列として指定すると正規表現とは認識されないので注意して下さい(つまり(文字列)変数も正規表現とは認識されません)。
No.2
- 回答日時:
正規表現を変数に入れずに、split(~)の引数に直接 記述して下さい。
【例】
test = "AAAlikeBBB<=CCC>=DDD";
element = test.split(/like|<=|>=/);
for( i = 0; i < element.length; i++ ){
document.write('i='+i+'; ');
document.write('element[i]="'+element[i]+'"; ');
document.write('<br>');
}
【結果】
i=0; element[i]="AAA";
i=1; element[i]="BBB";
i=2; element[i]="CCC";
i=3; element[i]="DDD";
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バナーのランダム表示(複数、...
-
JavaScriptでの動的な多次元配...
-
関数でy=g(x)のgとは何の略です...
-
ボタンをクリックすると数が増...
-
cgiでポーリングして取得したデ...
-
javascriptでテーブルに追加し...
-
ASP.NETのコントロールの値をJa...
-
要素名がスペースを含む場合のj...
-
VC++のちらつき防止方法
-
ブラウザ、OSによってCSSを使い...
-
XMLでのAttributeを持ったNode...
-
appendChildがieだとできない??
-
javascriptで編集可能不可能の...
-
Vb.netのグローバル変数の宣言...
-
delphi6を使っています。
-
GASのエラー「undefined からプ...
-
ActiveXobjectが作成できない
-
ローカルにあるファイルを検索...
-
mousewheelイベントについて
-
フラグについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#テキストボックスの文字を配...
-
jspからjavascriptの変数引継ぎ
-
同じIDで定義した要素の配列を...
-
二次元配列を使って順位をだす...
-
Ascition Script2
-
配列番号を自動的に一括して入...
-
テトリス / 配列をブロックに...
-
空の配列に2次元配列の追加
-
undefinedを表示させない方法は...
-
javascriptで行を抽出したいです。
-
textareaに入力されたデータを...
-
Perlの配列をJavaScriptに渡せ...
-
助けてください‼︎ javascriptで...
-
(google apps script)スプレ...
-
javascript 変数名の連結をしたい
-
Javascript 配列の使い方について
-
JSON形式で取得した8桁の数字を...
-
行列データ?の文字列操作につ...
-
雪を降らせるみたいな、ゆらゆ...
-
配列データの利用方法
おすすめ情報