我有一个用 JavaScript 设置的动态面包屑。我只想为每个单词做首字母大写。
示例:主页 > 一些 > 页面
目前,我将它们全部转换为小写,并从具有多个单词的页面中的字符串中删除了所有 - 。我只需要将字符串转换为 Initial Caps。这是我到目前为止工作的代码:
var path = "",
href = document.location.href,
domain = href.match(/:\/\/(.[^/]+)/)[1],
replacedomain = 'http://' + domain + '/',
s = href.replace(/-/gi, " ").split("/"),
lastElement = document.location.href.split('/').splice(-1,1);
for (var i = 2; i < (s.length - 1); i++) {
path += "<a class='bc' href=\"" + href.substring(0, href.indexOf("/" + s[i]) + s[i].length + 1) + "/\">" + s[i] + "</a> > ";
if (i > 0) {
breadcrumb = path;
}
}
i = s.length - 1;
breadcrumb += "<span>" + s[i] + "</span>";
var breadcrumbl = breadcrumb.toLowerCase(),
domain = breadcrumbl.match(/:\/\/(.[^/]+)/)[1],
breadcrumb2 = breadcrumbl.replace(domain, "").replace(domain, ""),
breadcrumbs = breadcrumb2,
url = '<a href="/">Home</a>' + breadcrumbs;
document.getElementById('breadcrumb1').innerHTML=url;
我认为解决方案是使用正则表达式,但我不擅长编写它们,而且我很难理解这个概念。此外,如果有人认为此脚本可以进一步优化,欢迎您提供反馈。我将使变量名称在生产中更具语义。