Javascript: regexp to remove .html

Javascript: regexp to remove .html

本文关键字:remove html to regexp Javascript      更新时间:2023-09-26

我正在寻找一些删除字符串.html扩展名的正则表达式。

由于某种原因,我已经找到了这两个它们不起作用:

var path = './views/contacts/node/item.html';
var otherPath = path;
path.replace(/'.[^/.]+$/, '');
console.log(path);
// returns ./views/contacts/node/item.html
otherPath.replace(/(.*)'.[^.]+$/, '');
console.log(otherPath);
// also returns ./views/contacts/node/item.html

知道出了什么问题吗?

您的原始regex有效,您只是没有捕获返回结果。以下两种方法都将起作用:

path = path.replace(/'.[^/.]+$/, '');
path = path.replace(/'.html$/, '');

http://jsfiddle.net/AE2BY/

path = path.replace(/'.html$/, '');

假设.html扩展名位于字符串的末尾,则始终如此。

至于你提到的正则表达式有什么问题——它们是不正确的,永远不会匹配你给出的示例字符串。

var path = './views/contacts/node/item.html';
var otherPath = path.replace(/('.html).*?$/, '');
console.log(otherPath) // './views/contacts/node/item'

这应该删除之后的所有内容,包括" .html "。

没有从上面列出的函数中获得所需内容的原因是因为您console.log错误的变量。改变:

var path = './views/contacts/node/item.html';
var otherPath = path;
path.replace(/'.[^/.]+$/, '');
console.log(path);

自:

var path = './views/contacts/node/item.html';
var otherPath = path.replace(/'.[^/.]+$/, '');
console.log(otherPath);