Javascript-将字符串调整为标题大小写逻辑
我正在尝试将我的字符串转换成我能够成功完成的标题大小写。使用此方法:Javascript-将字符串调整为标题大小写逻辑,javascript,string,Javascript,String,我正在尝试将我的字符串转换成我能够成功完成的标题大小写。使用此方法: title.toLowerCase().split(' ').map(function (s) { return s.charAt(0).toUpperCase() + s.substring(1); }).join(' '); 但当前的逻辑很好地适用于一个特定的标题模式。我试图对它进行定制,以便在不同的场景中更好地工作,但这样做时,它们都不会对标题的结果产生影响 对于初学者,如下面的代码片段所示,单
title.toLowerCase().split(' ').map(function (s) {
return s.charAt(0).toUpperCase() + s.substring(1);
}).join(' ');
但当前的逻辑很好地适用于一个特定的标题模式。我试图对它进行定制,以便在不同的场景中更好地工作,但这样做时,它们都不会对标题的结果产生影响
对于初学者,如下面的代码片段所示,单词(case)是小写的,也应该大写。它似乎没有将括号后的第一个字母大写
我还试图得到一个结果,即用Tv=Tv
替换单词和=&
。我正在使用.replace
方法处理此问题
如何调整下面的代码段以添加这些条件
let title=“在电视上调整标题(案例和测试)”
titleCase=title.toLowerCase().split(“”).map(函数){
返回s.charAt(0.toUpperCase()+s.substring(1);
}).加入(“”);
滴定酶。替换(/和/ig,,&');
标题。替换(“电视”、“电视”)
console.log(titleCase)
解决方案是:
let title=“在电视上调整标题(案例和测试)”;
让滴定酶;
titleCase=title.toLowerCase().split(“”).map(函数){
返回s.charAt(0.toUpperCase()+s.substring(1);
})替换(/and/ig,“&”)。替换(/Tv/ig,“Tv”);
控制台日志(titleCase)代码>解决方案是:
let title=“在电视上调整标题(案例和测试)”;
让滴定酶;
titleCase=title.toLowerCase().split(“”).map(函数){
返回s.charAt(0.toUpperCase()+s.substring(1);
})替换(/and/ig,“&”)。替换(/Tv/ig,“Tv”);
控制台日志(titleCase)代码>这是解决方案:
let title=“在电视上调整标题(案例和测试)”;
让滴定酶;
titleCase=标题
.toLowerCase()
.拆分(“”)
.map(功能){
返回s.charAt(0)='('?'('+s.charAt(1).toUpperCase()+s.substring(2):s.charAt(0).toUpperCase()+s.substring(1);
})
.join(“”)
.替换(/和/gi,“&”)
.替换(/Tv/gi,“Tv”);
console.log(titleCase);
这是解决方案:
let title=“在电视上调整标题(案例和测试)”;
让滴定酶;
titleCase=标题
.toLowerCase()
.拆分(“”)
.map(功能){
返回s.charAt(0)='('?'('+s.charAt(1).toUpperCase()+s.substring(2):s.charAt(0).toUpperCase()+s.substring(1);
})
.join(“”)
.替换(/和/gi,“&”)
.替换(/Tv/gi,“Tv”);
console.log(titleCase);
letttocapitalize
在您试图大写的每个单词中查找[a-zA-Z0-9.]
的第一个匹配字母
在代码中,您必须记住,.replace(…)
实际上返回一个全新的字符串。它不就地修改字符串(在JavaScript中,字符串为一个的基本数据类型是不可修改的)。问题是您没有将此新字符串分配给您正在注销的变量
let title=“在电视上调整标题(案例和测试)”
让titleCase=title.toLowerCase().split(“”).map((s)=>{
让letterToCapitalize=s.match(/\w/)[0];
返回s.replace(letterToCapitalize,letterToCapitalize.toUpperCase())
}).加入(“”);
titleCase=titleCase.replace(/和/ig,,&')。replace(“Tv”,“Tv”);
console.log(titleCase)
letterocapitalize
在您试图大写的每个单词中查找[a-zA-Z0-9.]
的第一个匹配字母
在代码中,您必须记住,.replace(…)
实际上返回一个全新的字符串。它不就地修改字符串(在JavaScript中,字符串为一个的基本数据类型是不可修改的)。问题是您没有将此新字符串分配给您正在注销的变量
let title=“在电视上调整标题(案例和测试)”
让titleCase=title.toLowerCase().split(“”).map((s)=>{
让letterToCapitalize=s.match(/\w/)[0];
返回s.replace(letterToCapitalize,letterToCapitalize.toUpperCase())
}).加入(“”);
titleCase=titleCase.replace(/和/ig,,&')。replace(“Tv”,“Tv”);
console.log(titleCase)
使用下面的方法,您需要做的就是指定symbol
对象中应该转换为符号的单词,以及allUpperCase
数组中需要全部大写的单词
let title=“在电视上调整标题(案例和测试)”;
设reg=/\w+/g;
//将所有单词转换为titleCase
标题=标题。替换(reg,(word)=>{
返回word.charAt(0.toUpperCase()+word.slice(1);
});
//转换应该是符号的单词
常量符号={'和':'&'};
用于(对象的符号。键(符号)){
设str=symbol;
title=title.replace(新的RegExp(str,'ig'),符号[symbol]);
}
//转换所有需要大写的单词
const allUpperCase=['TV'];
AlluperCase.forEach(项目=>{
title=title.replace(新的RegExp(项'ig'),found=>{
返回find.toUpperCase();
});
});
console.log(title);
使用下面的方法,您需要做的就是指定symbol
对象中应转换为符号的单词,以及allUpperCase
数组中需要全部大写的单词
let title=“在电视上调整标题(案例和测试)”;
设reg=/\w+/g;
//将所有单词转换为titleCase
标题=标题。替换(reg,(word)=>{
返回word.charAt(0.toUpperCase()+word.slice(1);
});
//转换应该是符号的单词
常量符号={'和':'&'};
用于(对象的符号。键(符号)){
设str=symbol;
title=title.replace(新的RegExp(str,'ig'),符号[symbol]);
}
//转换所有需要大写的单词
const allUpperCase=['TV'];
AlluperCase.forEach(项目=>
const str = 'Adjusting the title (case and test) on tv';
const titleCase = (str) => str.replace(/\b[a-z]/gi, (cahr) => cahr.toUpperCase()).replace(/Tv/gi, 'TV');