Javascript 更改包含';的字符串,滴定酶
我能用这个把一个普通的字符串改成标题大小写Javascript 更改包含';的字符串,滴定酶,javascript,regex,Javascript,Regex,我能用这个把一个普通的字符串改成标题大小写 return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); 我不知道如何将这样的字符串添加到标题框中 maureen o'hara -> Maureen O'Hara maureen macnamee -> Maureen MacNamee Maureen mctavis -&
return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
我不知道如何将这样的字符串添加到标题框中
maureen o'hara -> Maureen O'Hara
maureen macnamee -> Maureen MacNamee
Maureen mctavis ->Maureen McTavis
这可能吗?正则表达式很有趣,但如果您想尝试更人性化的方法,请尝试以下方法:
function toTitleCase(str)
{
return str.replace(/\w+/g, function(txt){
if (txt.substr(0,2) === "mc") return "Mc" + txt.charAt(2).toUpperCase() + txt.substr(3).toLowerCase();
else if (txt.substr(0,3) === "mac") return "Mac" + txt.charAt(3).toUpperCase() + txt.substr(4).toLowerCase();
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}
它应该可以工作并且“更容易”扩展。您可以使用以下代码:
函数名totc(输入){
返回输入。替换(/\b(ma?c)?(\w)(\w*)/ig,函数(m,grp1,grp2,grp3){
如果(grp1){
返回grp1.charAt(0.toUpperCase()+grp1.substr(1.toLowerCase()+grp2.toUpperCase()+grp3.toLowerCase();
}
否则{
返回grp2.toUpperCase()+grp3.toLowerCase();
}
});
}
log(nameToTC('maureeno'hara');
log(nameToTC('maureenmacnamee');
log(nameToTC('maureenmctavis')代码>检查<代码>控制台.log('maurEEN o'hARA'.replace(/\b(\w)(\w*)/g,函数(m,grp1,grp2){return grp1.toUpperCase()+grp2.toLowerCase();}))代码>谢谢,如果姓氏是macnamee或mc呢?这是要求吗?请将示例输入添加到具有预期输出的问题中。