我希望在输入时(使用keyup函数)将所有单词大写,以格式化输入的姓名。
例如:
john doe => John Doe JOHN DOE => John Doe tommy-lee => Tommy-Lee 目前,我使用以下代码:
例如:
john doe => John Doe JOHN DOE => John Doe tommy-lee => Tommy-Lee 目前,我使用以下代码:
$("input").keyup(function() {
var cp_value= ucwords($(this).val(),true) ;
$(this).val(cp_value );
});
function ucwords(str,force){
str=force ? str.toLowerCase() : str;
return str.replace(/(\b)([a-zA-Z])/g,
function(firstLetter){
return firstLetter.toUpperCase();
});
}
但是如果单词中包含重音字符,下一个字母也会大写:John Döe => John DöE。
如何获得我想要的最佳解决方案?
谢谢
str.split(/(\s|-)+/).map(function( v ,i ){ return v.charAt(0).toUpperCase()+ v.slice(1).toLowerCase(); }).join('')
- rab