我想把这些文本变成链接类型版本;
nis silence => NisSilence
şalk priori => SalkPriori
Sanchez404 Sad Mood => Sanchez404SadMood
将诸如"nis silence"; ";等转换为TitleCase格式。您可以首先使用String.prototype.split
创建一个单词数组,然后将数组中每个单词的第一个字符大写,并使用Array.prototype.join
删除每个单词之间的空格。
要从字符串中删除重音和变音符号,您可以使用String.prototype.normalize
和String.prototype.replace
。
function titleCase(str) {
let strArr = str.split(" ");
for (var i = 0; i < strArr.length; i++) {
strArr[i] = strArr[i][0].toUpperCase().concat(strArr[i].substr(1).toLowerCase());
strArr[i] = strArr[i].normalize("NFD").replace(/[u0300-u036f]/g, "");
}
return strArr.join("");
}
console.log(titleCase("nis silence"));
console.log(titleCase("şalk priori"));
console.log(titleCase("Sanchez404 SAD Mood"));
另一个选项,如@JavaScript提到的,将使用Array.prototype.map
代替for
循环。
function titleCase(str) {
let strArr = str.split(" ");
return strArr.map(s => s[0].toUpperCase()
.concat(s.substr(1).toLowerCase())).join("")
.normalize("NFD").replace(/[u0300-u036f]/g, "");
}
console.log(titleCase("nis silence"));
console.log(titleCase("şalk priori"));
console.log(titleCase("Sanchez404 SAD Mood"));