Javascriptを使用してLaravelアプリケーションで正規表現を使用するのに問題があります。ミドルウェアとjavascriptの正規表現との競合はありますか?
ここにコードスニペットがあります。私は提出された年と一致するレコードを引っ張ってデータをフィルタリングしようとしています。私は、特定の資産のための毎日の終値を使用してのみで日付欄にYYYY年から始まるデータプルにしたいんだ「YYYY-MM-DD HHを:MM:SS」形式:
d.forEach(function(data){
dateCompare = new RegExp(year + "-" + /\d\d/ + "-" + /\d\d/ + " " + /\d\d/ + ":" + /\d\d/ + ":" + /\d\d/);
console.log(data.date.match(dateCompare));
if(d.date.match(year + "-" + /\d\d/ + "-" + /\d\d/ + " " + /\d\d/ + ":" + /\d\d/ + ":" + /\d\d/)){
console.log("Match");
}
else{
console.log("No match");
}
});
を私は、文字列が一緒に比較するために、取得することができます
date, close
YYYY-MM-DD HH:MM:SS, 123.45 //year-month-day hour:minute:seconds
が、それは正規表現を認識していないようです:csv形式は、再び、のような見えます。 Console.logは、比較されている両方の文字列を出力し、両方を出力します。一方はリテラル正規表現文字列、他方は単純な日付書式文字列です。
現在のところ、console.log以外の結果を出すように設定する必要はありません。私はif(... === true)
、if(...)
などを含むif文の複数の書式を試してきましたが、正規表現に合わせるべき日付書式にもかかわらず "No match"という印字しか印刷されません。私はまた正規表現を文字列として保存し、Regexオブジェクトと直接比較してみました。まだ成功していない。
私はすべて同じことを言っていて、それを暗黙的に明示的に実装しようとしていて、結果は同じでした。 Regexに何か問題がありますか?
アプリケーションはLaravelの上に構築されていますが、スクリプトファイルに他のスクリプトを実行する際に問題はありません。
編集:コードスニペットは省略可能な関数パラメータyear
の宣言を省略し、パラメータがない場合はデフォルトで2010になります。私の唯一の問題は文字列を一致させることで、私のWebアプリケーションは.date
属性のRegex文字列をdata
と比較できないようです。それとも私の実装が間違っているかもしれません。私はもう少し微妙なことをして、それを働かせることができるかどうかを見ます。
また、私はd3.js
ライブラリを使用していることを忘れています。
d
は.csv
ファイルの読み取りからの生データの出力を含む変数であり、data
はfunction(data)
のローカルスコープに渡される変数です。
[正規表現を使用して動的文字列に一致](https://stackoverflow.com/questions/2145073/match-dynamic-string-using-regex)と多分この[MDN String.prototype.match](https ://developer.mozilla。 – ljubadr