以下代码
'\/\d{2}\/\d{2}\/\d{4}\/'g.exec('<span style=\"color:green\">291</span> days until expiry on 25/11/2017')
预计会发出"25/11/2017"
,但它会给出浏览器控制台错误“意外的标识符”。知道为什么以及如何解决它?
答案 0 :(得分: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);
&#13;
请注意,由于反斜杠在正则表达式中被转义,因此将正则表达式原样传递给RegExp
构造函数将不会产生预期的结果。
不推荐,但为了以防万一,如果你想使用以后的语法,请两次转义反斜杠。
new RegExp('\\d{2}\\/\\d{2}\\/\\d{4}', 'g').exec('...
另请注意,RegExp#exec
会返回数组。