Javascript jQuery转换句子大小写
我有一些JavaScript在一些文本上运行转换案例:Javascript jQuery转换句子大小写,javascript,jquery,Javascript,Jquery,我有一些JavaScript在一些文本上运行转换案例: $(".container").click(function(){ text = text.toLowerCase().replace(/\b[a-z]/g, function(block){ return block.toUpperCase(); }); 它将容器div中的给定文本返回到句子大小写。但是,当文本中使用撇号时,例如 can't get this to work 它回来了 Can'T Get This To Wor
$(".container").click(function(){
text = text.toLowerCase().replace(/\b[a-z]/g, function(block){
return block.toUpperCase();
});
它将容器div中的给定文本返回到句子大小写。但是,当文本中使用撇号时,例如
can't get this to work
它回来了
Can'T Get This To Work
如何使撇号后面的尾随t保持小写?表达式不起作用的原因是,a是
的缩写(^\w |\w$|\w\w |\w\w)
,而这不包括'
字符,这意味着'
后面的字符,在您的例子中是t
,正在被选中
您可以将\b
替换为(^ |\s)
,这将是/(^ |\s)[a-z]/g
,在您的情况下,这将起作用:
$(".container").click(function() {
text = text.toLowerCase().replace(/(^|\s)[a-z]/g, function(block) {
return block.toUpperCase();
});
});
但是,最好的方法是使用正则表达式
\w\S*
,它将选择任何单词字符(即[a-zA-Z0-9\]
),后跟任何非字符串字符(即[^\r\n\t\f]
)
这将允许您选择每个单词子字符串。从这里,您可以将第一个字符大写,并将其余字符转换为小写:
$(".container").click(function() {
text = text.replace(/\w\S*/g, function(word) {
return word.charAt(0).toUpperCase() + word.substr(1).toLowerCase();
});
});
例如,以下代码段将返回:
"can't get this to work".replace(/\w\S*/g, function(word) {
return word.charAt(0).toUpperCase() + word.substr(1).toLowerCase();
});
// > "Can't Get This To Work"
谢谢,这正是我需要的!