Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Regex - Fatal编程技术网

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呢?这是要求吗?请将示例输入添加到具有预期输出的问题中。