![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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で質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- JavaScript gasについて 1 2022/05/31 21:51
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- JavaScript JavaScriptの即時関数の書き方 1 2022/11/29 09:52
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- JavaScript 正規表現について質問です。条件に合う場合はtrueを返したい 3 2022/10/06 23:02
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
同じIDで定義した要素の配列を...
-
jspからjavascriptの変数引継ぎ
-
(google apps script)スプレ...
-
JavaScriptからPHPに配列を渡す...
-
バナーのランダム表示(複数、...
-
C#テキストボックスの文字を配...
-
二次元配列を使って順位をだす...
-
多次元配列から最大値を1行また...
-
[JS] setAttributeで保存される...
-
二次元配列の全要素の全要素を...
-
Perlの配列をJavaScriptに渡せ...
-
1から20までの整数から、重複な...
-
JSで配列同士の重複チェック
-
javascript 配列 変数名「arra...
-
配列のソートがしたい
-
JSONデータを50音順でソートしたい
-
2つの文字列を比較する方法
-
大分類・中分類・小分類のvalue...
-
乱数を配列へ格納(JavaScript)
-
google apps scriptの終了のさせ方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じIDで定義した要素の配列を...
-
C#テキストボックスの文字を配...
-
jspからjavascriptの変数引継ぎ
-
javascript 変数名の連結をしたい
-
二次元配列を使って順位をだす...
-
React hooksが値を返して配列変...
-
undefinedを表示させない方法は...
-
フォーム入力値の重複チェック
-
javascriptで行を抽出したいです。
-
JavaScriptでの動的な多次元配...
-
多次元配列から最大値を1行また...
-
HTMLで誕生石と星座をアラート...
-
JSONデータを50音順でソートしたい
-
重複しないようにランダムで表...
-
1から20までの整数から、重複な...
-
JavaScriptにおける[] とか :...
-
gas 配列
-
【JavaScript】オブジェクト型...
-
WSH(Jscript)でファイル一覧
-
JavaScriptで簡単なクイズを作...
おすすめ情報