Javascript 添加regex以忽略/js/img和/css
我有一个正则表达式Javascript 添加regex以忽略/js/img和/css,javascript,regex,node.js,url,Javascript,Regex,Node.js,Url,我有一个正则表达式 // Look for /en/ or /en-US/ or /en_US/ on the URL var matches = req.url.match( /^\/([a-zA-Z]{2,3}([-_][a-zA-Z]{2})?)(\/|$)/ ); 现在,使用上述常规express会导致URL出现问题,例如: css/bootstrap.css 或 js/jquery.js 因为我的正则表达式是从A-Z或A-Z中去掉2-3个字符 我的问题是,我如何添加到这个正则
// Look for /en/ or /en-US/ or /en_US/ on the URL
var matches = req.url.match( /^\/([a-zA-Z]{2,3}([-_][a-zA-Z]{2})?)(\/|$)/ );
现在,使用上述常规express会导致URL出现问题,例如:
css
/bootstrap.css
或
js
/jquery.js
因为我的正则表达式是从A-Z或A-Z中去掉2-3个字符
我的问题是,我如何添加到这个正则表达式中,以避免使用
js
或img
或css
或ext
不影响原来的
我不是正则表达式方面的专家:(负前瞻
var matches = req.url.match(/^\/(?!(js|css))([a-zA-Z]{2,3}([-_][a-zA-Z]{2})?)(\/|$)/ );
\
后面不跟js
或css
首先,您没有定义要搜索的内容。
使用小写公共语言代码()定义数组
这样你就知道该找什么了
然后,将url转换为小写,并将所有的“u”替换为“-”,然后使用indexOf()搜索结果字符串中数组的每个成员.既然您说要使用正则表达式替换文本,我就将其更改为替换函数。此外,您还强制正则表达式匹配字符串的开头;我看不出它如何匹配任何内容。总之,我的方法是:
var result = req.url.replace(/\/([a-z]{2,3}([-_][a-z]{2})?)(?=\/|$)/i,
function(s,t){
switch(t){case"js":case"img":case"css":case"ext":return s;}
return "";
}
);
您使用的是哪种语言/工具?我使用的是Javascript/node.js@anirudhi如果您编写了正确的正则表达式,则不应使用img、css和ext等字符串catched@AurelioDeRosa是的,这就是为什么我需要一些帮助来将这三个条件添加到我的regex@Ali你为什么不使用内置的URL解析器?我得到这个错误是出于某种原因r:无法调用unfinedEnd的方法'replace',请注意,若您使用的是匹配结果,那个么由于我添加了额外的“()”,所以数字已经移动了一点