从字符串抛出错误中提取日期

时间:2017-02-10 03:17:15

标签: javascript regex

以下代码

'\/\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 个答案:

答案 0 :(得分:3)

错误在这里/'g

在以文字形式使用时,不应将正则表达式包装在字符串中。它应该被正斜线包围,而不是向后斜线。

&#13;
&#13;
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);
&#13;
&#13;
&#13;

请注意,由于反斜杠在正则表达式中被转义,因此将正则表达式原样传递给RegExp构造函数将不会产生预期的结果。

不推荐,但为了以防万一,如果你想使用以后的语法,请两次转义反斜杠。

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

另请注意,RegExp#exec会返回数组