我有一个带有一些文本输入的表单,用于插入一个人的 First Name
、Last Name
,但我想将每个单词的首字母更改为大写我找到了这个解决方案:
// The textboxes with this class are modified
$(".toUpper").change(function () {
var str = $(this).val();
str = str.toLowerCase().replace(/\b[a-z]/g, function (letter) {
return letter.toUpperCase();
});
$(this).val(str);
});
它有效,("hEllO"=>"Hello", "whAts uP"=>"Whats Up")
。
当我尝试将其应用于带重音的单词时出现问题,示例:
"gonzález" = "GonzáLez",
"pérez" = "PéRez"
重音单词后又是一个大写字母。
如何修改正则表达式以避免此问题?
希望你能帮帮我!! :)
最佳答案
\b
是一个非单词边界(即 \b
将为任何不属于 [0 -9a-zA-Z_]
)
所以那些带重音的词成为你词的边界..
改用这个正则表达式
/(^|\s)[a-z\u00E0-\u00FC]/g
关于Javascript/jQuery 变量的首字母大写,带重音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16573099/