
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を探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#テキストボックスの文字を配...
-
jspからjavascriptの変数引継ぎ
-
同じIDで定義した要素の配列を...
-
テーブルをソートするには
-
C#で、ContextMenuStripに動的...
-
functionから別のfunctionを実...
-
window.openでタイトル名の指定
-
HTTPSのとき":"が"%3A"ではなく...
-
ジェネレーターの作り方
-
シンプルなweb版スタンプラリー...
-
ページ内に複数表がある場合のT...
-
ActiveXobjectが作成できない
-
javascriptでテーブルに追加し...
-
特定のclassを表示、非表示にする
-
jQuery|要素だけを変更できま...
-
Javascriptで定期的にF5を押す...
-
GASでundefinedエラーが出ます
-
webページ上のTabキーの動き
-
明日・明後日・明々後日
-
ASP+アクセスでのSQLコメントに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#テキストボックスの文字を配...
-
jspからjavascriptの変数引継ぎ
-
同じIDで定義した要素の配列を...
-
二次元配列を使って順位をだす...
-
Ascition Script2
-
配列番号を自動的に一括して入...
-
テトリス / 配列をブロックに...
-
空の配列に2次元配列の追加
-
undefinedを表示させない方法は...
-
javascriptで行を抽出したいです。
-
textareaに入力されたデータを...
-
Perlの配列をJavaScriptに渡せ...
-
助けてください‼︎ javascriptで...
-
(google apps script)スプレ...
-
javascript 変数名の連結をしたい
-
Javascript 配列の使い方について
-
JSON形式で取得した8桁の数字を...
-
行列データ?の文字列操作につ...
-
雪を降らせるみたいな、ゆらゆ...
-
配列データの利用方法
おすすめ情報