
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ランキング
-
javascriptで行を抽出したいです。
-
二次元配列を使って順位をだす...
-
jspからjavascriptの変数引継ぎ
-
JavaScriptでの動的な多次元配...
-
同じIDで定義した要素の配列を...
-
window.openでタイトル名の指定
-
JavaScriptで文字列の特定文字...
-
google apps scriptの終了のさせ方
-
functionから別のfunctionを実...
-
クリックすると上に開くアコー...
-
<a>タグのテキストを取得
-
変数のスコープの問題?
-
XMLHttpRequestオブジェクトが...
-
static constメンバ変数(配列)...
-
javascriptでiframeのURL変更は?
-
APIを使って埋め込んだグーグル...
-
Boolean型配列中のTrueの有無を...
-
javascriptで編集可能不可能の...
-
Excel VBA の ChangeFileAccess
-
JavaScriptで平日のみをカウン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#テキストボックスの文字を配...
-
同じIDで定義した要素の配列を...
-
jspからjavascriptの変数引継ぎ
-
javascript 変数名の連結をしたい
-
undefinedを表示させない方法は...
-
二次元配列を使って順位をだす...
-
javascriptで2つのArrayの...
-
複数のフィードの読み込みが日...
-
二次元配列の全要素の全要素を...
-
javascriptを用いて作成された...
-
("Scripting.Dictionary")につ...
-
javascriptで行を抽出したいです。
-
JavaScriptで簡単なクイズを作...
-
1から20までの整数から、重複な...
-
javascriptついてお聞きします。
-
ぷよぷよの消去アルゴリズムが...
-
配列を作って総当たりで距離を...
-
配列の数ではなく、文字列の長...
-
jQueryで文字数カウンタ(複数...
-
jQuery text()で、<br>タグも取...
おすすめ情報