2017-02-10 14 views
0

次のコード抽出日付投げエラー

'\/\d{2}\/\d{2}\/\d{4}\/'g.exec('<span style=\"color:green\">291</span> days until expiry on 25/11/2017') 

"25/11/2017"を与えることが期待されていますが、それは、ブラウザのコンソールエラーに「予期しない識別子」を与えています。どのようなアイデアをなぜ、どのように修正するか?

+1

一般的なコメント:より良い結果を得るには、HTMLパーサを使用してください。 –

+0

なぜ 'html'文字列に' RegExp'を使用しようとしているのですか?どのように文字列を取得しますか? – guest271314

+0

@ guest271314私の推測では、OPは**文字列**から日付を取得しようとしています。 DOMを読み込んでも日付は要素にラップされないので、 'textContent' /' innerHTML'プロパティを使って抽出することはできません。これは、正規表現/部分文字列を使用して抽出する必要があります。 – Tushar

答えて

3

ここでエラーは/'gです。

リテラル形式で使用する場合は、正規表現を文字列で囲んではいけません。スラッシュで囲まれていなければなりません。

var date = /\d{2}\/\d{2}\/\d{4}/g.exec('<span style=\"color:green\">291</span> days until expiry on 25/11/2017'); 
 
console.log(date);

注バックスラッシュは、それが期待される結果を生成しませんRegExpコンストラクタにあるとして、正規表現を渡し、あなたの正規表現でエスケープされています。

後の構文を使用する場合は、バックスラッシュを2回エスケープしてください。

new RegExp('\\d{2}\\/\\d{2}\\/\\d{4}', 'g').exec('... 

はまた、注意してRegExp#exec戻りアレイ