Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-将字符串调整为标题大小写逻辑_Javascript_String - Fatal编程技术网

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');