我正在尝试匹配最后包含/static/js
的{{1}}内的javascript文件,'x'是字符或数字,因此必须匹配:
?v=xxxx
但不是:
http://127.0.0.1:8888/static/js/components/backbone.js?v=a6tsb
这个匹配哈希:
http://127.0.0.1:8888/static/js/views/ribbon.js
http://127.0.0.1:8888/templates/require-config.js
但我正在尝试将其扩展为包含“/ static / js”。
我试过了:
var hashRegex = new RegExp("^.*\\?v=\\w{5}$");
但似乎没有用。
我错过了什么?
答案 0 :(得分:2)
在javascript中使用字符串表示正则表达式时,您需要双重转义(\\
)特殊字符(正则表达式)
所以,你的正则表达式将是
var hashRegex = new RegExp("^.*/static/js/.*\\?v=\\w{5}$");
但是如果你将此语法用于正则表达式
var hashRegex = /regex/;
你必须使用单个\
进行转义。你也可以转义/
,因为它被用作分隔符
所以,在这种情况下你的正则表达式将是
var hashRegex = /^.*\/static\/js\/.*\?v=\w{5}$/;
答案 1 :(得分:1)
我会试试这个:
var hashRegex = new RegExp("^.*\/static\/js\/.*\?v\=[a-zA-Z0-9]{5}$");
(我不知道你是否必须逃避=)